objective-c – 如何在基于ARC的项目中使用该版本

前端之家收集整理的这篇文章主要介绍了objective-c – 如何在基于ARC的项目中使用该版本前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我知道这个话题有很多问题.我从未参与过基于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,请使用您拥有的代码.如果你不关心它何时何地被释放,你不必这样做.

猜你在找的Xcode相关文章