使用ARC发布

时间:2012-07-02 18:32:44

标签: objective-c ios automatic-ref-counting

基本问题在这里。我开始使用ARC,并且不确定是否应该在另一个对象获得所有权的情况下释放对象。

e.g。 [self.view addSubview:someViewController.view];

是否应该发布此视图,还是可以保留原样?

一个数组也是如此,当向数组添加对象时,我是否应该在之后释放它们,因为数组具有对象所有权,或者我可以离开它?

3 个答案:

答案 0 :(得分:3)

对于这个静态[self.view addSubview:someViewController.view];,如果someViewController是一个强大的属性,那么在使用它之后,你应该调用self.someViewController = nil

对于一个你不会在对象上调用release的数组,但是如果数组是一个强大的属性,那么当你完成它时你需要将它设置为nil

答案 1 :(得分:1)

使用ARC,您可能不会发布任何内容。编译器将确定何时何地释放给定对象 - 您不允许自己执行此操作。

如果你使用ARC,那么答案就是:释放一个对象,如果你已经保留(或复制,分配或创建)新的)它,你完成了参考。因此,如果使用alloc创建对象,请将其添加到数组中,然后不再需要自己跟踪该对象,然后是,您应该将其释放。数组和其他集合将保留它们包含的对象。但同样,只有当你使用ARC时;如果您 使用它,那么您无需担心发布任何内容。

答案 2 :(得分:0)

不再释放并保留在ARC中,只需保持原样。