完全な初心者ではありません。私はiOSプログラミングとOjbective-Cにまったく慣れていません。私は主にC(DSP、マイクロコントローラー)、Delphi XE2 / Pascal、Visual Basic、Java(デスクトップおよびAndroidアプリ)のバックグラウンドを持っています。
私は主に、Apressの「BeginningiOS5Development」という本でCocoaを学びました。
最近、私はWWDC 2012のビデオを見て、それらのサンプルコードのいくつかを調べましたが、アプリの正しい書き方、より具体的には@ property /@synthesizeという言葉に混乱していると言わざるを得ません。
この本では、サンプルコードのほとんど(すべてではない)が、たとえばプロパティを定義するために使用しています
ViewController.h
@property (strong, nonatomic) NSMutableArray *list;
ViewController.m
@synthesize list;
次に、すべてのコードアクセス合成リスト
self.list
または単に
list
今、私が読んだすべてのWWDCコードサンプルで、プログラマーがプロパティを定義していることがわかりますが、.mファイルでは次のようなことをします。
@synthesize list = _list;
時々アクセスします
self.list
また
_list
私は混乱しています。正しい習慣は何ですか?Appleプログラマーは皆アンダースコアを使用しているので、私はそれをそのようにすべきだと思いますが、なぜ本はそうしなかったのですか?listと_listに違いはありますか?さらに、私は同じオブジェクトにいるので、なぜ時々self.listを使用し、時にはlist/_listを使用するのですか。
@synthesizeを使用しない場合もありますが、それは、独自のアクセサーとミューテーターを書き直したい場合だと思います(これまでのところ、これは私の場合ではありません)。
私はウェブ上であちこち読んだことがありますが、私の心を正しく設定するのに十分明確なものは何もなかったので、ここに光をもたらすためにStackOverflowを頼りにしています。
最後になりましたが、私は現在のiOS6のベストプラクティス/プログラミング手法に基づいて回答します。古いiOSで正しく行う方法を教えても役に立たない。