我想知道在启用ARC时为原始数据类型(如bool
)编写合成属性的正确方法是什么。
我曾经在ARC之前使用过这个:
@property(assign) bool isOn;
但是,在启用ARC时,您不应该使用assign
,这是我的理解(也许是错误的)。我尝试用weak
替换它,但我收到了错误 -
“weak”属性的属性必须是object类型。
我应该继续使用assign
吗?
答案 0 :(得分:29)
Assign
没问题。 ARC代表“自动引用计数”,原始数据类型没有引用计数。
Weak
失败,因为没有对象,也没有任何ARC要管理的参考资料。
答案 1 :(得分:4)
似乎你需要在这里阅读某个主题。 检查:http://clang.llvm.org/docs/AutomaticReferenceCounting.html
检查第4章;) 在这里你会看到ARC的分配很好。
答案 2 :(得分:0)
启用ARC时,您可以为原始数据编写合成属性,例如(例如:BOOL)。 @property(unsafe_unretained)bool isOn;