これは、私がを理解できることの2つの質問です。詳細。iOSプロパティの宣言の明確化
1)あなたがobjective c
にクラスのプロパティを宣言するための2つの人気のオプションを持っているように私には思えます。 1つは、ヘッダーのクラス本体にプロパティを追加することです。
@interface MyClass : NSObject {
NSArray *myArray;
}
それとも@interface
体の後などなどの@end
声明前にそれを追加することができます。
@interface MyClass : NSObject {
//
}
@property (nonatomic, retain) NSArray *myArray;
これら二つの「スタイル」とあなたは他の上で1つを選択しないの違いは何ですか?
2)@property
の後には、(nonatomic, retain)
などのオプションがあります。何のためのものなのですかなぜ/いつあなたは別のオプションを使用しますか?
この唯一の回答の2番目の質問です。 Simonの答えはパート1について語っています。 –
@MarkAmeryもちろん - 私はパート1が本当に基本的だと感じました。ここに重複情報を追加する必要はありません。 –
#2は完全に間違っています。 'atomic'プロパティはスレッドセーフを保証しません。むしろ原子性を保証します。スレッドAとスレッドBの両方が書き込みを行っている場合、 'atomic'は結果が確実に全体の値になり、どちらか一方を意味します。どちらが未定義ですか。スレッドセーフなコードを書くことは 'atomic'プロパティを使うほど簡単ではありません。 Threading Programming Guideの "Synchronization"セクションを参照してください。http://developer.apple.com/library/ios/#documentation/Cocoa/Conceptual/Multithreading/ThreadSafety/ThreadSafety.html#//apple_ref/doc/uid/10000057i -CH8-SW1 –