我创建了@property
UIColor
,
@property (nonatomic) UIColor *color;
然后我尝试合成它:
@synthesize color = _color;
但收到错误:
ARC禁止使用未指定的所有权或存储属性
合成Objective-C对象的属性
这是什么意思?
我要做的就是为UIColor
对象创建一个更改颜色的属性。
答案 0 :(得分:37)
将您的财产声明更改为:
@property (nonatomic,strong) UIColor *color;
以便ARC知道应该保留它。这可能在ARC之前没有strong
进行编译,但是由于默认值为assign
并且颜色会被释放,除非它被保留在其他位置,否则它将是危险的。
我强烈推荐关于ARC的WWDC2011视频。
答案 1 :(得分:4)
您必须在属性声明中指定strong
或weak
存储空间(nonatomic
旁边)。