Developer's Blog

Xcode 4 の IBOutlet 追加機能がとても便利

Xcode 4 bar

こんにちは。開発担当の金内です。

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 を表示するモードにすれば簡単です。

Xcode 4 Assistant Editor View

■ ステップ2

Ctrl キーを押しながら、IBOutlet にしたい UIView を xib ファイルからヘッダファイルのインタフェース宣言内にドラッグ&ドロップします。このとき、インスタンス変数宣言部ではなく、メソッド宣言部にドロップしてください。

Xcode 4 Drag IBOutlet

■ ステップ3

表示されるポップアップで名前を指定して Connect ボタンを押します。

Xcode 4 Connect Popup

たったこれだけです。これだけで、Xcode 3.x で汗水たらして書いていたインスタンス変数やら dealloc やら viewDidUnload やら @property やら @synthesize やらを、一発で追加してくれてしまうのです。

Xcode 4 IBOutlet Result

さすが Xcode 4 です。メジャーアップデートです。これこそが未来です。

素晴らしいですね。

Xcode 4 は他にもたくさん良くなっているところがあります(そうでもないところもあります)。この IBOutlet の追加機能だけでも Xcode 4 を使う価値アリと言えるでしょう。これまで食わず嫌いだった方もどうぞ試してみてください。

Copyright © 2019 Fenrir Inc. All rights reserved.