は:カスタムゲッター/セッターを使用する場合、プロパティの「アトミック」属性と「非アトミック」属性は何らかの効果を持ちますか?私はクラスで宣言されたプロパティがある場合
@interface MyClass : NSObject
@property (atomic) NSString *myString;
@end
をそして、私はカスタムのgetterメソッドとsetterメソッドを実装します。
@implementation MyClass
- (NSString *)myString
{
// return something
}
- (void)setMyString
{
// do something
}
@end
プロパティ宣言の「アトミック」属性は、実際には何をするのでしょうか?または、自動ゲッタ/セッタが実際にコンパイラによって作成された場合にのみ使用されますか?
"アトミック"と "非アトミック"キーワードは、カスタムゲッターとセッターのプロパティで何もしないと仮定すると、それらのプロパティにどのような属性を使用すべきかについては何らかの規則がありますか?
アトミック性を実装しないのであれば、 "コンベンション"は、クライアントが扱っていることをクライアントが知るように、プロパティを「非原子的」にすることです。 –
"atomic"は、独自のゲッターまたはセッターを使用するときに警告を出すことに影響しますが、両方を使用することはできません。 – gnasher729