1. ホーム
  2. ios

[解決済み] Nonatomic "とはどういう意味ですか?

2022-04-28 23:18:36

質問

このコードにおける "nonatomic" の意味は何でしょうか?

@property(nonatomic, retain) UITextField *theUsersName;

アトミックとノンアトミックの違いは何ですか?

ありがとうございます

解決方法は?

をご覧ください。 アップルドキュメント .

基本的に、もしあなたが nonatomic を使い、アクセサを生成します。 @synthesize もし、複数のスレッドが一度にそのプロパティを変更したり、読み取ったりしようとすると、悪いことが起こる可能性があります。部分的に書き込まれた値や、過剰にリリース/リテインされたオブジェクトが得られ、クラッシュにつながりやすくなるのです。(これはアトミックアクセサよりずっと速い可能性がありますが)。

もし、デフォルト(これは atomic 以前はこのキーワードはありませんでしたが、現在は は、現在 を含む)、次に @synthesize d メソッドはオブジェクトレベルのロックを使用して、1 つのプロパティに対する複数の読み取り/書き込みがシリアライズされることを保証します。Appleのドキュメントが指摘しているように これは、オブジェクト全体がスレッドセーフであることを意味するものではありません。 しかし、個々のプロパティの読み取り/書き込みはそうです。

を使用するのではなく、独自のアクセッサを実装する場合は、そのアクセッサを使用します。 @synthesize これらの宣言は、そのプロパティがスレッドセーフな方法で実装されているかどうかという意図を示す以外には何もないと思います。