基本问题在这里。我开始使用ARC,并且不确定是否应该在另一个对象获得所有权的情况下释放对象。
e.g。 [self.view addSubview:someViewController.view];
是否应该发布此视图,还是可以保留原样?
一个数组也是如此,当向数组添加对象时,我是否应该在之后释放它们,因为数组具有对象所有权,或者我可以离开它?
答案 0 :(得分:3)
对于这个静态[self.view addSubview:someViewController.view];
,如果someViewController是一个强大的属性,那么在使用它之后,你应该调用self.someViewController = nil
对于一个你不会在对象上调用release的数组,但是如果数组是一个强大的属性,那么当你完成它时你需要将它设置为nil
答案 1 :(得分:1)
使用ARC,您可能不会发布任何内容。编译器将确定何时何地释放给定对象 - 您不允许自己执行此操作。
如果你不使用ARC,那么答案就是:释放一个对象,如果你已经保留(或复制,分配或创建)新的)它,和你完成了参考。因此,如果使用alloc
创建对象,请将其添加到数组中,然后不再需要自己跟踪该对象,然后是,您应该将其释放。数组和其他集合将保留它们包含的对象。但同样,只有当你不使用ARC时;如果您 使用它,那么您无需担心发布任何内容。
答案 2 :(得分:0)
不再释放并保留在ARC中,只需保持原样。