objective-c - ARC 禁止合成具有未指定所有权或存储的属性

标签 objective-c memory-management properties compiler-errors automatic-ref-counting

我创建了一个 @propertyUIColor

@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/

相关文章:

java - Spring @Value 不加载属性

ios - 如何在同步运行时使异步方法超时

java - JVM什么时候加载类?

php - 类反射 : Missing Properties

c - fprintf 导致控制台应用程序崩溃

node.js - 在 node.js 中避免 "system out of memory"的最佳方法是什么?

C# - 检查是否设置了整数属性

objective-c - 属性是否隐式创建该名称和类型的类成员?

objective-c - 如何在 iOS 中加载 XIB

objective-c - CoreGraphics 在白色 Canvas 上绘制图像