今天写程序,无意间出来一个这样的警告。
指向这一行:@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格式的。所以产生了这个警告。注意不要混淆。
官方文档在此,其他都是浮云。