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

Dar*_*lay 19 memory-management properties objective-c automatic-ref-counting

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

我曾经在ARC之前使用它:

@property(assign) bool isOn;
Run Code Online (Sandbox Code Playgroud)

但是我的理解(也许是错误的)你不应该assign在启用ARC时使用它.我试着替换它weak但我得到错误 -

"weak"属性的属性必须是object类型.

我应该继续使用assign吗?

Rob*_*rek 29

Assign很好.ARC代表"自动引用计数",原始数据类型没有引用计数.

Weak 失败,因为没有对象,也没有任何ARC要管理的参考.

  • 如果您自己未指定setter语义,则"Assign"是默认值.`@property bool isOn`与`@property(assign)bool isOn`相同.参见[Obj C Reference - 属性声明属性 - setter语义](https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/ObjectiveC/Chapters/ocProperties.html#//apple_ref/doc/uid/TP30001163-CH17-SW2).另外,`assign`是唯一可能的选择,因为其他语义只适用于对象,而不是基元. (2认同)