您的位置:首页 > 移动开发 > Objective-C

error: property's synthesized getter follows Cocoa naming convention for returning 'owned' objects

2014-07-08 11:10 435 查看
出现这种情况,主要是属性名中包含  关键字. 

You can solve this by:

Renaming that property:
@property (strong, nonatomic) NSString *theNewTitle;


Keeping the property name and specifying a getter name that doesn’t begin with one of the special method name prefixes:
@property (strong, nonatomic, getter=theNewTitle) NSString *newTitle;


Keeping both the property name and the getter name, and telling the compiler that, even though the getter name starts with 
new
,
it belongs to the 
none
 method
family as opposed to the 
new
method
family:
#ifndef __has_attribute
#define __has_attribute(x) 0  // Compatibility with non-clang compilers
#endif

#if __has_attribute(objc_method_family)
#define BV_OBJC_METHOD_FAMILY_NONE __attribute__((objc_method_family(none)))
#else
#define BV_OBJC_METHOD_FAMILY_NONE
#endif

@interface ViewController : UIViewController
@property (strong, nonatomic) NSString *newTitle;
- (NSString *)newTitle BV_OBJC_METHOD_FAMILY_NONE;
@end


Note that even though this solution allows you to keep 
newTitle
 as
both the property name and the getter name, having a method called 
-newTitle
 that
doesn’t return an object owned by the caller can be confusing for other people reading your code.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ios ios开发
相关文章推荐