16

私が得たエラー

error: property's synthesized getter follows Cocoa naming convention for returning 'owned' objects
/Users/.../ViewController.h:12:40: 

note: property declared here
@property (nonatomic, retain)NSString *newString;

最初に変数名にnewを使用できないのはなぜですか?(のようにnewString

4

2 に答える 2

32

プロパティを宣言すると、2つのアクセサー(ゲッター/セッター)メソッドが合成されます。

-(NSString*)newString;
-(void)setNewString:(NSString*)newString;

Objective-Cには、コンパイラによって適用されるメモリ管理の命名規則があります。new呼び出し元が「所有」するオブジェクトを返すには、(「alloc」、「copy」、「mutableCopy」も)で始まるメソッドが必要です。ドキュメントを参照してください。生成されたアクセサーメソッドはルールに従いません。

于 2013-03-12T15:46:23.863 に答える
1

この命名規則は、Objective-Cですでに使用されています。これを機能させるには、昔ながらのようなものを使用する必要がありますmyString。それはコンパイラーのことです-コンパイラーはうるさいです。

于 2013-03-12T15:46:34.837 に答える