为什么我不能在Obj-C中声明一个类似“newVariable”的variables?

错误我得到了

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; 

为什么我在开始时不能在variables名中使用new ? (如newString

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

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

Objective-C有一个由编译器执行的内存pipe理命名约定。 以new (也是“alloc”,“copy”,“mutableCopy”)开始的方法需要返回一个将被调用者“拥有”的对象。 请参阅文档 。 生成的存取方法不遵循规则。

这个命名约定已经在Objective-C中使用了。 你将需要使用像普通的旧myString这样的工作。 这是一个编译器的东西 – 编译器是挑剔的。