1

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

例如[self.view addSubview:someViewController.view];

是否应该发布此视图,或者我可以保持原样吗?

数组也是如此,当将对象添加到数组时,我应该在之后释放它们,因为数组具有对象所有权还是我可以离开它?

4

3 回答 3

3

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

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

于 2012-07-02T18:35:32.137 回答
1

使用 ARC,您可能不会发布任何内容。编译器将确定何时何地释放给定对象——你不能自己做。

如果您使用 ARC,那么答案将是:如果您已保留(或复制、分配或使用 new 创建)对象,则释放该对象,并且您已完成引用。因此,如果您使用 创建一个对象alloc,将其添加到数组中,随后不再需要自己跟踪该对象,那么是的,您应该释放它。数组和其他集合将保留它们包含的对象。但同样,这只是在您使用 ARC 的情况下;如果您正在使用它,那么您无需担心释放任何内容。

于 2012-07-02T18:41:56.400 回答
0

在 ARC 中不再释放和保留,保持原样。

于 2012-07-02T18:34:17.957 回答