1
如果我說self->ivar = [[Foo alloc] init];
,ARC是否真的保留了新的對象?或者這種類型的分配通常用於防止保留?什麼是自動引用計數對箭頭的影響 - >解除引用?
如果我說self->ivar = [[Foo alloc] init];
,ARC是否真的保留了新的對象?或者這種類型的分配通常用於防止保留?什麼是自動引用計數對箭頭的影響 - >解除引用?
確實ARC會保留新對象嗎?
這取決於ivar
的屬性。如果ivar
擁有強大的所有權限制(大多數變量的默認值),則該對象將被保留。
找到變量的方式並不重要;無論是本地,全局,隱式實例(只是變量名稱),顯式實例(例如您樣本中的->
)等;它只關心變量的所有權限定符 - ARC將按照所有權限定符的說明做正確的事情。
HTH
什麼「新對象」,關於「 - >」?作業的RHS與這個問題無關;考慮LHS是不是「解除參考」。 – user2864740