加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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,请使用您拥有的代码.如果你不关心它何时何地被释放,你不必这样做.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读