重複の可能性:
Cocoaのこの二重アンダースコアは何ですか
1 つではなく 2 つのアンダースコアを使用するさまざまな Core Data コード例を見てきました。iVars と _variableName の使用の利点は認識していますが、1 つではなく 2 つを使用する特定の理由/利点はありますか? __fetchedResultsController = ... など
重複の可能性:
Cocoaのこの二重アンダースコアは何ですか
1 つではなく 2 つのアンダースコアを使用するさまざまな Core Data コード例を見てきました。iVars と _variableName の使用の利点は認識していますが、1 つではなく 2 つを使用する特定の理由/利点はありますか? __fetchedResultsController = ... など
二重下線を使用する本当の理由はありません。
ただし、Objective-C の一部で次のように使用されているため、私はそれらのファンではありません。
__block
また__unsafe_unretained
を見たとき__
、私はまずそれを Apple が定義したデコレータと考える傾向があります。どちらかといえば、1 秒のアンダースコアがクラスの iVar であると一般に理解されているのに対し、それは余分な考えを追加します。
を使用することをお勧めし_
ます。
「ココアのこの二重アンダースコアとは何ですか?」に対する受け入れられた回答から:
C コンパイラ (および拡張 Objective-C) は、コンパイラ ベンダーが使用するために 2 つのアンダースコアと大文字で始まる名前を予約し、標準ライブラリを実装するために使用されるグローバル変数と関数に使用する予約済みの名前空間を提供します。 - のような標準的なキーワード
__block
。
ANSI C 標準の要約には、次のように書かれています。
アンダースコアで始まる外部識別子は、ライブラリで使用するために予約されています。