Property's synthesized getter follows Cocoa naming convention for returning 'owned' objects

今天写程序,无意间出来一个这样的警告。

指向这一行:@property (retain, nonatomic) NSString *newTitle;

Apple LLVM complier 4.1 Warning.

Semantic Issue: Property's synthesized getter follows Cocoa naming convention for returning 'owned' objects


经过查阅资料,得到下面结果:The compiler version you’re using follows the memory management rules for declared properties, too.

A property named newTitle,when synthesised, yields a method called -newTitle, hence the warning/error. -newTitle is supposed to be a getter method for the newTitle property, however naming conventions state that a method whose name begins with new returns an object that’s owned by the caller, which is not the case of getter methods.

简单的说就是你的编译器在声明属性的时候,遵循内存管理原则,为属性变量命名的时候,不要用到  “alloc”, “new”, “copy”, or “mutableCopy”这些word,因为这些属性在synthesized的时候它的getter 函数是newObject格式的。所以产生了这个警告。注意不要混淆。

官方文档在此,其他都是浮云。

你可能感兴趣的:(Property's synthesized getter follows Cocoa naming convention for returning 'owned' objects)