我创建了一个 @property
的 UIColor
,
@property (nonatomic) UIColor *color;
然后我尝试合成它:
@synthesize color = _color;
但我收到一个错误:
ARC forbids synthesizing a property of Objective-C object with unspecified ownership or storage attribute
这是什么意思?
我想要做的就是为一个改变颜色的 UIColor
对象创建一个属性。
最佳答案
将您的属性(property)声明更改为:
@property (nonatomic,strong) UIColor *color;
让 ARC 知道它应该被保留。在 ARC 之前,如果没有 strong
,这会编译,但它会很危险,因为默认是 assign
并且颜色会被释放,除非它被保留在别处。
我强烈推荐有关 ARC 的 WWDC2011 视频。
关于objective-c - ARC 禁止合成具有未指定所有权或存储的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8460611/