読者です 読者をやめる 読者になる 読者になる

@niwakk7 iPhoneアプリ作っていますよ

iPhoneアプリ作ってます。調べたことを、ゆるく残していきます。

アプリをシンプルにつくったほうがいい、技術的な7個の理由。

アプリをシンプルに作ったほうがよい理由は、ほとんど語り尽くされている。だが、技術的な理由はあまり語られていないかも。ということで、その技術的な視点からの、アプリをシンプルに作ったほうがいい理由をいくつか考えてみた。 開発工数が減る。 これは…

Lipo Error: can't open input file *** というエラーでビルドが通らない。

さまざまな解決策が議論されているみたい。xcode - Lipo Error: can't open input file - Stack Overflowただ、自分の場合は少しちがったみたい。 以下の方法で解決した。 Google AnalyticsのSDKを参照から削除。 右クリックからDelete、Remove from referen…

TextField押下でPickerViewを下から出す。

画面下部から、ピッカーをにゅって出すのはとてもUIなんだが、実装するのに少し工夫しなければいけない。ちなみに以前は、UIActionSheetの上にのせるという方法をとっていた。しかし、iOS8でUIActionSheetやUIAlertViewが大きく変わるため、動かなくなる。そ…

NSLocalizedStringで、設定している日本語が表示されない。

ローカライズしたはずの日本語が出ない事象が発生!Localizable.string (English)にて、 "Close" = "Close";Localizable.string (Japanese)にて、 "Close" = "閉じる";NSLocalizedString (@"Close", nil); んー、うまく表示されない。cleanもして、Xcode立ち…

UITableViewのindexPathからセルを取得する。

UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:indexPath];

The Simulator can't be launched because it is already in use.でSimulatorが立ち上がらない。

Simulatorを立ち上げていないのに、The Simulator can't be launched because it is already in use.と、すでに立ち上がっていることになってしまう場合の対処法。Xcodeを一旦終了させる。

UITabBarItemのtitleが表示されない!

これはよくある現象らしい。http://stackoverflow.com/questions/5573966/uitabbaritem-title-not-displayedちなみに僕は、以下のように修正してなおりました。修正前: UITabBarController *tabBarController = [[UITabBarController alloc] init]; UITabBar…

cocoaPodsインストール覚え書き

ちょっと雑な覚え書きで申し訳ないが、まぁ、メモ程度に... 1. プロジェクトファイルと同じディレクトリに移動。 2. RubyGemsを最新状態に更新 $sudo gem update --system 3. Command Line Toolsをインストール。 Xcode->Preferences->Downloads->Components…

UIAlertViewにUITextFieldをのせる。

このようなUIを作るときの覚え書き。 UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"タイトル" message:@"メッセージ" delegate:self cancelButtonTitle:@"キャンセル" otherButtonTitles:@"OK", nil]; alert.delegate = self; alert.alertVie…

macのスクリーンショット保存先を変える。

システム環境設定から変更することはできないようですが、ターミナルから簡単にできます。 Pictures配下にscreenshotsというフォルダを作って、そこに設定する場合は以下です。 defaults write com.apple.screencapture location /Users/(ユーザ名)/Pictures…

定数はstaticで宣言する。

#defineはマクロでない限りはstaticで宣言する。 NYTimesのコーディング規約より。 static NSString * const TSCompanyName = @"Niwakk7.inc"; static const CGFloat TSTableHeight = 50.0; ただ、const型は頭にkをつけるのも、一つの一般的な作法であったり…

現在設定されている地域の現在時間を取得する。

//現在値取得 NSLocale *currentLocale = [NSLocale currentLocale]; NSString *text = [NSString stringWithFormat:@"%@", [[NSDate date] descriptionWithLocale:currentLocale]]];

UIButtonのテキストの位置を変える。

UIButtonのテキストの位置を変える方法。 setTitleEdgeInsetsというメソッドで位置を設定する。こういう感じ(左)のUIButtonを、 こういう(右)感じにしたいとき。 UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom]; btn.frame = CGRectMake(80,…

applicationIconBadgeNumberでつけたbadgeがアプリを削除しても消えない。

現象がおこった経緯。1. バッジをつけるアプリを作成。 2. やっぱりいらないと思って、処理を削除。 3. アプリを起動。 4. バッジが残り続ける。 5. 何回やってもだめ。 6. (´Д`。)けっきょく、いったん処理を切り戻し、badgeを0に設定してアプリを起動する…

UIActionSheetのキャンセルボタンが効かない

UIActionSheetの一番下のボタンに"キャンセル"を配置したのにきかない。 今までこんな事なかったので、はまりまくった。どうやらtoolbarがあると、この現象が起こるらしい。 UIActionSheet *actionSheet = [[UIActionSheet alloc] init]; actionSheet.delega…

Xcodeでビルド時のデバイスがMy Mac 64bitしか選べないときにEdit Schemeから"アプリ名.app"を選択してもだめだった場合

My Mac 64bitしかでない!という問題に関して、ググったら掲題のように直すのが一般的らしい。しかし自分の場合は、それが原因ではなかった。そしてとうとう、解決方法を発見した。 1. プロジェクトを右クリック->"パッケージの内容を表示"を選択。 2. xcuse…

UITextViewの改行幅を変える。

UITextViewを編集可能にしてなにやら文章をいれたりすると、以外と行間が狭かったりして、結構圧迫感のある見た目になってしまう。そういうときは、以下のようにして、改行幅を変える。NSLayoutManagerDelegateというプロトコルを使い、 lineSpacingAfterGly…

下から出てくる メニュー UIActivityViewController

これ⬇のことなんですが、 なかなか名前がでてこなくてググったら、"下から出てくる"とかいう検索候補が出てきました。けども、検索結果はこっちのほうが主。 ちなみにこれは、"コントロールセンター"という。 UIActivityViewController 実装方法は簡単。 - (…