0
當代碼init方法,一個(copy)
屬性應該被分配等爲什麼劑量(複製)屬性和(強)屬性的初始設置不同?
_foo = [foo copy];
但對於一個(strong)
屬性只是將其指定:
_bar = bar;
當代碼init方法,一個(copy)
屬性應該被分配等爲什麼劑量(複製)屬性和(強)屬性的初始設置不同?
_foo = [foo copy];
但對於一個(strong)
屬性只是將其指定:
_bar = bar;
隨着strong
屬性,變量(VAR _bar
)本身是strong
,因此賦值足以創建一個強有力的參考。
雖然複製不會自動完成。沒有copy
變量,因此必須明確調用copy
。
就在幾年前,計數引入自動引用前,strong
分配使用的是:
_bar = [bar retain];
但在ARC自動化的和現在我們只
_bar = bar;
通過需要方式,直接分配財產沒有根本的錯誤:
self.bar = bar;
對於
copy
和
strong
屬性均爲
。通過ivar _bar
的訪問僅在您的設置人員讀取其他可能尚未初始化的屬性時纔有必要。
是的。關鍵是'copy'有望複製。 – danh
謝謝!現在很清楚。 –