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

声明一个属性会综合两个访问器(getter/setter)方法:

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

Objective-C 有一个由编译器强制执行的内存管理命名约定。以(还有“alloc”、“copy”、“mutableCopy”)开头的方法new需要返回一个将由调用者“拥有”的对象。请参阅文档。生成的访问器方法不遵循规则。

于 2013-03-12T15:46:23.863 回答
1

此命名约定已在 Objective-C 中使用。您将需要使用像普通旧的东西myString来完成这项工作。这是编译器的事情 - 编译器很挑剔。

于 2013-03-12T15:46:34.837 回答