objective-c – 如何在基于ARC的项目中使用该版本
发布时间:2020-12-14 17:39:37 所属栏目:百科 来源:网络整理
导读:我知道这个话题有很多问题.我从未参与过基于Non ARC的项目. 我有强大的弱势属性如下 @property(strong,nonatomic)NSArray *data1;@property(unsafe_unretained,nonatomic)NSArray *data2; 我在某些地方看到人们在viewDidUnload中明确地将数据设为nil. 即 -(v
我知道这个话题有很多问题.我从未参与过基于Non ARC的项目.
我有强大的&弱势属性如下 @property(strong,nonatomic)NSArray *data1; @property(unsafe_unretained,nonatomic)NSArray *data2; 我在某些地方看到人们在viewDidUnload中明确地将数据设为nil. 即 -(void)viewDidUnload{ self.data1=nil; self.data2=nil; } 我的问题是,如果我不在我的情况下这样做(我的意思是如果我不使data1和data2为零 在viewDidUnload中,ARC会自动释放对象吗? 解决方法
是的,ARC将在销毁父对象之前自动释放所有强引用属性/变量.至于“弱”引用,它们不会被保留/释放(无论是否有ARC都是一样的).
在viewDidUnload中设置self.data1 = nil通常是不必要的,但有时您希望明确显示引用对象的释放位置.如果您想确保在此行代码处发布data1,请使用您拥有的代码.如果你不关心它何时何地被释放,你不必这样做. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |