如果我说self->ivar = [[Foo alloc] init];
,ARC是否真的保留了新对象?或者这种类型的分配通常用于防止保留?
答案 0 :(得分:1)
ARC实际上是否保留了新对象?
这取决于ivar
的属性。如果ivar
具有强大的所有权限定条件(大多数变量的默认值),则该对象将被保留。
找到变量的方式并不重要;它是一个本地的,全局的,隐式的实例(只是变量名),显式实例(例如你的样本中的->
)等等;只关注变量的所有权限定符是什么 - ARC将按照所有权限定符的指示做正确的事情。
HTH