1

重複の可能性:
Cocoaのこの二重アンダースコアは何ですか

1 つではなく 2 つのアンダースコアを使用するさまざまな Core Data コード例を見てきました。iVars と _variableName の使用の利点は認識していますが、1 つではなく 2 つを使用する特定の理由/利点はありますか? __fetchedResultsController = ... など

4

1 に答える 1

5

二重下線を使用する本当の理由はありません。

ただし、Objective-C の一部で次のように使用されているため、私はそれらのファンではありません。

__blockまた__unsafe_unretained

を見たとき__、私はまずそれを Apple が定義したデコレータと考える傾向があります。どちらかといえば、1 秒のアンダースコアがクラスの iVar であると一般に理解されているのに対し、それは余分な考えを追加します。

を使用することをお勧めし_ます。

「ココアのこの二重アンダースコアとは何ですか?」に対する受け入れられた回答から:

C コンパイラ (および拡張 Objective-C) は、コンパイラ ベンダーが使用するために 2 つのアンダースコアと大文字で始まる名前を予約し、標準ライブラリを実装するために使用されるグローバル変数と関数に使用する予約済みの名前空間を提供します。 - のような標準的なキーワード__block

ANSI C 標準の要約には、次のように書かれています。

アンダースコアで始まる外部識別子は、ライブラリで使用するために予約されています。

于 2012-09-06T18:07:05.517 に答える