こんにちは。開発担当の金内です。
iPhone アプリ開発に欠かせないツールといえば Xcode ですね。
今年の3月に大幅なアップデートとなった Xcode 4 正式版がリリースされたことはご存知のとおり。シングルウィンドウ化や Interface Builder の統合など、ほとんど別物といってもいい変貌をとげてくれました。
さて、Xcode 3.x でバリバリとコーディングしていたみなさんは、Xcode 4 に移行しているでしょうか?
筆者の周囲の声を聞いてみると「自宅では使ってるけど仕事では…」とか「まだバグが気になるから…」と、まだ移行に踏み切れない空気を感じます。激変してますからね。気持ちはとてもよくわかります。
しかし、いずれは移行しなければならないわけですし、みなさん興味はお持ちだと思うので、iPhone アプリプログラマに嬉しい Xcode 4 の便利機能を1つご紹介します。
たとえば View Controller から IBOutlet として UIView (仮に theView とします)を参照する場合、theView は retain されるので、dealloc メソッド内で release しなければなりません。
それで最低限は OK ですが、より効率的にメモリを使うなら viewDidUnload でも release したほうがいいですね。
さらに、Objective-C 2.0 のプロパティとしてアクセスできるようにするには @property と @synthesize も書かなくてはなりませんね。
つまり、UIView を IBOutlet として追加すると次の5ヶ所にコードを追加しなくてはならないわけです。
・ インスタンス変数
・ dealloc メソッド
・ viewDidUnload メソッド
・ @property 宣言
・ @synthesize 宣言
Xcode 3.x ではけっこうがんばってこれらのコードを追加していました(よね?)。工夫すると多少は軽減できるものの、IBOutlet を追加するのはやっぱり面倒でした。
Xcode 4 ではこの面倒さが劇的に改善されています。さっそくやってみましょう。
■ ステップ1
まずは対象となる View Controller のヘッダファイルと xib ファイルが両方見えるようにしましょう。Assistant Editor を表示するモードにすれば簡単です。
■ ステップ2
Ctrl キーを押しながら、IBOutlet にしたい UIView を xib ファイルからヘッダファイルのインタフェース宣言内にドラッグ&ドロップします。このとき、インスタンス変数宣言部ではなく、メソッド宣言部にドロップしてください。
■ ステップ3
表示されるポップアップで名前を指定して Connect ボタンを押します。
たったこれだけです。これだけで、Xcode 3.x で汗水たらして書いていたインスタンス変数やら dealloc やら viewDidUnload やら @property やら @synthesize やらを、一発で追加してくれてしまうのです。
さすが Xcode 4 です。メジャーアップデートです。これこそが未来です。
素晴らしいですね。
Xcode 4 は他にもたくさん良くなっているところがあります(そうでもないところもあります)。この IBOutlet の追加機能だけでも Xcode 4 を使う価値アリと言えるでしょう。これまで食わず嫌いだった方もどうぞ試してみてください。