19

我想知道在启用ARC的情况下,为基本数据类型(如bool)编写合成属性的正确方法是什么。使用ARC的原始数据类型的合成属性 - 弱或分配?

我使用ARC之前,使用这样的:

@property(assign) bool isOn; 

但它是我的理解(也许是错误的)已启用ARC时,你不应该使用assign。我试图用weak替换这个,但我得到错误 -

“弱”属性的属性必须是对象类型。

我应该继续使用assign吗?

回答

29

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

Weak失败,因为没有对象,也没有任何ARC管理引用。

+0

因此,赋值并不是弱的完美同义词。但是再次,弱是默认的权利? –

+0

默认情况下,ARC放置较强的 – deimus

+0

“分配很好”我一直在阅读。它有一个很好的押韵,但它似乎回避了这一点:是“分配”必要!?如果你不使用“分配”会发生什么? – Rhubarb

0

当启用ARC时,您可以编写基本数据的合成属性,例如(例如:BOOL).. @property(unsafe_unretained)bool isOn;

相关问题