iOSアプリ開発が楽しくなる小技

iTunes U スタンフォード大学のiOSアプリ開発講義で知った小技です。操作が楽しくなったり、便利だったり、コード行数を減らすテクニックだったりといろんな小技がデモで実演されていました。気付いたものをまとめてご紹介します。

 

ブレークポイントの削除

デバッグ用のブレークポイントがドラッグ&ドロップで削除出来ます。最初に見た時は驚いたと同時に、嬉しくなって何度も自分でやってみました。この方法を知るとデバッグも少し楽しくなります。

 

 

アウトレットやアクションとコード間の接続

storyboard上のオブジェクトをCTRL−ドラッグでつかんでコード上でドロップするとアウトレットやアクションが自動生成されます。

コード上でドロップすると、アクションの場合は次の図のように名前を入力するポップオーバーが表示されます。

名前を入力して「Connect」ボタンを押すとコードが自動生成されます。

※自動生成したメソッドの名前を変更すると接続が切れるので、storyboardのオブジェクトを右クリックして前の接続を削除し、そのあと接続し直す必要があります。

 

自動生成されたアクションは、senderのクラス名を変えると便利

アクションは、senderが(id)として自動生成されますが、このidをsenderのクラスにしておくとアクションメソッド内でコードの入力にアシスト機能が働くので便利になります。

上図では、(id)を(UITapGestureRecognizer *)に変えて、分かりやすくするために引数名もsenderからgestureに変更しています。

クラス名を変更しているため、loと入力するとアシスト機能が働いて、loで始まるメソッドの一覧を表示してくれます。

 

NSMutableArrayの初期化時の小技

NSMutableArrayを初期化する時、数が決まっていれば、capacity指定で初期化するとパフォーマンスが向上するらしいです。

 

 

待機中に表示する歯車アイコンの付け替え

リフレッシュボタン→歯車アイコン→リフレッシュボタンという流れで待機中に歯車アイコンを表示するときの小技です。

リフレッシュボタンのアクションメソッドの中で、待機が完了して歯車アイコンから元のリフレッシュボタンに戻す時は、senderがリフレッシュボタンなのでsenderをセットする1行だけのコードで済みます。

 

 

画面のタイトルはself.title

画面にタイトルを設定する時は、ビューコントローラのクラス実装の中でself.titleにタイトル名をセットするだけです。

 

 

storyboardで重なったオブジェクトから選択

storyboardで何重にも重なったオブジェクトからオブジェクトを選択したい時は、SHIFTキーを押しながら右クリックするとその位置にあるオブジェクトの選択画面が表示されるので、簡単に選択出来ます。

 

 

複雑なstoryboardからアウトレットやアクションを接続

オブジェクトがたくさんあって複雑なstoryboardからコードにアウトレットやアクションを接続する場合は、storyboardのアウトラインからオブジェクトを選択すると便利です。

※アウトレット内でもCTRL−ドラッグでオブジェクト間の接続ができます。

 

 

動的なテーブルビューから直接segue

テーブルビューで選択されたセルは、indexPathForCell: メソッドを使ってインデックスがが分かるので、テーブルビューコントローラのdidSelectRowAtIndexPath: というdelegateメソッドを使わなくても次のようにsegueの準備が出来ます。これを使えば、コード内でperfromSegue〜を使ってsegueさせずに、storyboardのセルからsegue接続させるだけでsegueが出来ます。

 

 

segue先を汎用的に指定

respondsToSelector: メソッドを使って、segue先に任意のパブリックメソッドがあるかどうかで正しいsegue先かどうかを判断すると、そのパブリックメソッドを持ったsegue先にsegueできる汎用的なコードになります。

 

 

segue先を曖昧に指定

複数のsegue先に対応させるために、segueのidの一部でsegue先を指定するには、hasPrefix:メソッドを使います。

 

 

配列の全オブジェクトに対して同じ処理

サブビューを全て削除する場合など、NSArrayのmakeObjectsPerformSelector:メソッドを使うと1行で処理が出来ることがあります。