2009-05-25 75 views

回答

12

不,你不必自己释放它。

如果更换对象都有一个保留计数等于0

新对象时,您可能会得到一个错误被保留。旧对象被释放。

+0

如果retainCount> 1(当某些其他对象仍在保留它时),您可能不会立即得到该错误。 – rein 2009-05-25 12:59:13

3

您不必释放它。

你没有执行ALLOC复制保留它,因此是不负责的记忆 - 这个文档是很清楚的。

我不希望Apple在SDK中记录每种方法的内存管理过程,除非它违反了他们已经设置的内存管理规则。如果文档没有说出任何内容,您可以假定默认规则适用。

1

的文件非常明确地指出在文件的顶部这一权利:

一样的NSArray,NSMutableArray里的情况下维持其内容的强引用。如果您不使用垃圾回收,则当您将一个对象添加到数组中时,该对象将收到一条保留消息。当一个对象从可变数组中移除时,它会收到一条释放消息。如果没有对该对象的进一步引用,这意味着该对象被解除分配。如果你的程序保持对这样一个对象的引用,那么引用将会失效,除非你在从数组中移除对象之前发送一个保留消息。

对于每种方法都没有重复记录这一点。