Xcode には「Objective-C 2.0 に変換...」という機能がある。これは古いコードを Objective-C 2.0 から導入された Fast Enumerator と Property に変換(追加)してくれるというもの。
例えば次のクラスを定義しておいて Xcodeのメニュー「編集」から「Objective-C 2.0 に変換...」を選ぶ。
ダイアログが開くので「プロパティを使用」にチェックを付けて「プレビュー」を押す。
すると候補が表示される。必要なものだけチェックして「適用」を押すと。
こうなる。*.hファイルに @property が追加され
*.m ファイルにも @synthesize が追加される。
メンバ変数を後で追加した場合に適用した場合、その追加したメンバ変数のみ @property/@synthesize を追加してくれる。
変換対象がない場合はエラー。
適用前にファイルを選択するとどのような変更が加えられるかをプレビューできる。
iOS向け開発の場合、定番の "(nonatomic, retain)" を後から加える必要があったりするのだが、自動生成されるのは役に立つ。
もうひとつの「ループを改新」は NSEnumerator を使っている箇所を Fast Enumeration(for in〜)に変更してくれる。
最近は最初から Fast Enumeration を使うのでこちらの出番は無いだろう。
登録:
コメントの投稿 (Atom)
人気の投稿(過去 30日間)
-
ある日突然この現象が起きた。 デバッガを起動するとObjective-Cのソースコードの代わりにアセンブリコードが表示されるようになった。設定をいじった覚えは無いのだが。。 ネットで調べてみるとどうもそういうモードがあるらしい。 Xcodeのデバッガは:なぜ私だけにアセン...
-
[前回] Cocoaの日々: 簡易スライドビューア [3] ダブルタップで拡大 今回は画面回転をサポートしてみる。 回転処理後の位置と大きさ お約束として(?)まずは shouldAutorotateInterfaceOrientation: をオーバライドして YE...
-
先日投稿した記事のソースコードに @griffin_stewie さんから pull request をいただいた。 Cocoaの日々: CAGradientLayer を使ったグラデーション付きボタンの試作 GradientButton at 2011-10-22 f...
-
[前回] ユニバーサルアプリにしてiPadに入れてみた。 iPad対応 このサイトが参考になった。 3時間でiPhoneアプリをiPad対応にした : 管理人@Yoski 以下、記録。 1. ターゲットを iPad用にアップグレード ターゲット上で右クリッ...
-
[前回] Cocoaの日々: [iOS] UIWebView でリッチテキスト形式のファイル(*.rtfd)を表示する 肝心のPDFを忘れていた。確認しておく。 サンプル いい感じだ。 - (IBAction)load5:(id)sender { NSURL* ur...










Responses
Leave a Response