私は Objective-C を学習していますが、@ 記号に何度も遭遇します。これは、文字列の先頭やアクセサ メソッドの合成など、さまざまなシナリオで使用されます。
Objective-C の @ 記号はどういう意味ですか?
ベストアンサー1
この@
文字は C または C++ の識別子では使用されないため、他の言語のキーワードと競合しない方法で Objective-C 言語のキーワードを導入するために使用されます。これにより、言語の「Objective」部分を C または C++ 部分と自由に混在させることができます。
したがって、ごくわずかな例外を除き、Objective-C コードを見ると@
、C または C++ の構造ではなく Objective-C の構造を見ていることになります。
主な例外はid
、、、、およびで、これらはClass
、後ろにまたは が付いている場合でも、通常は言語キーワードとして扱われます。たとえば、コンパイラは実際には、宣言に適用されるポインター型変換ルールや、GC 書き込みバリアを生成するかどうかの決定に関して、 を特別に扱います。nil
Nil
typedef
#define
id
その他の例外はin
、、、、、、およびです。これらは、分散オブジェクトをより効率的にするためにout
、メソッド パラメータと戻り値の型のストレージ クラス注釈として使用されます。(これらは、ランタイムから使用可能なメソッド シグネチャの一部となり、DO はこれを参照してトランザクションを最も適切にシリアル化する方法を決定することができます。) 宣言内には、、、、、、、、、および属性もあります。これらは、宣言の属性セクション内でのみ有効です。inout
oneway
byref
bycopy
@property
copy
retain
assign
readonly
readwrite
nonatomic
getter
setter
@property