我想知道在啓用ARC的情況下,爲基本數據類型(如bool
)編寫合成屬性的正確方法是什麼。使用ARC的原始數據類型的合成屬性 - 弱或分配?
我使用ARC之前,使用這樣的:
@property(assign) bool isOn;
但它是我的理解(也許是錯誤的)已啓用ARC時,你不應該使用assign
。我試圖用weak
替換這個,但我得到錯誤 -
「弱」屬性的屬性必須是對象類型。
我應該繼續使用assign
嗎?
我想知道在啓用ARC的情況下,爲基本數據類型(如bool
)編寫合成屬性的正確方法是什麼。使用ARC的原始數據類型的合成屬性 - 弱或分配?
我使用ARC之前,使用這樣的:
@property(assign) bool isOn;
但它是我的理解(也許是錯誤的)已啓用ARC時,你不應該使用assign
。我試圖用weak
替換這個,但我得到錯誤 -
「弱」屬性的屬性必須是對象類型。
我應該繼續使用assign
嗎?
Assign
很好。 ARC代表「自動引用計數」,原始數據類型沒有引用計數。
Weak
失敗,因爲沒有對象,也沒有任何ARC管理引用。
似乎你需要在這裏閱讀某個主題。 檢查:http://clang.llvm.org/docs/AutomaticReferenceCounting.html
檢查第4章;) 在這裏你會讀到,分配罰款與ARC。
當啓用ARC時,您可以編寫基本數據的合成屬性,例如(例如:BOOL).. @property(unsafe_unretained)bool isOn;
因此,賦值並不是弱的完美同義詞。但是再次,弱是默認的權利? –
默認情況下,ARC放置較強的 – deimus
「分配很好」我一直在閱讀。它有一個很好的押韻,但它似乎迴避了這一點:是「分配」必要!?如果你不使用「分配」會發生什麼? – Rhubarb