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日間)
-
[前回] Cocoaの日々: 簡易スライドビューア [9] ライブラリ化へ一歩 前回 GitHub に入れたコードはコンパイルできなかった。。他、いくつかバグを見つけたので修正した。 ソースコード xcatsan's iOS-Sample-Code at 201...
-
メニュー作成中。Autolayoutでこんな感じのビュー配置をしたい。 ランドスケープで。 親ビューが parentView、子ビューが tableViewとするとこんな感じ。 parentView.addSubview(tableView) ...
-
概要 CoreData に格納されている 6,000件のデータを CSVファイルへエクスポートする処理を走らせていたところ、どうもメモリ不足が原因で落ちてしまった。最終的にはメモリ使用量を減らすことでこの問題を回避することができた。以下はその時のInstruments のグラフ...
-
[前回] Cocoaの日々: CoreLocation - [1] 現在地の緯度経度を取得する 今回は現在位置を地図上にピンを立てて表示してみる。 実装 MKMapView を使うにはまず MapKit.framework をプロジェクトへ追加する。 そして必要なヘ...
-
拡大中に回転させるといろいろ問題があることがわかった。 拡大画像を回転させた時の問題 例えばこんな画像を拡大させたとする。 拡大中はこんな感じ。 この状態で回転させるとこうなる。 位置が左上にリセットされている。またこの状態で拡大画像をスクロールすることができない。こ...
Responses
Leave a Response