使用ARC的原始数据类型的合成属性 - 弱或分配?

时间:2011-10-13 14:04:34

标签: objective-c memory-management properties automatic-ref-counting

我想知道在启用ARC时为原始数据类型(如bool)编写合成属性的正确方法是什么。

我曾经在ARC之前使用过这个:

@property(assign) bool isOn;

但是,在启用ARC时,您不应该使用assign,这是我的理解(也许是错误的)。我尝试用weak替换它,但我收到了错误 -

  

“weak”属性的属性必须是object类型。

我应该继续使用assign吗?

3 个答案:

答案 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;