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;

相關問題