2011-01-27 70 views

回答

2

另一个例子是,如果您需要在将对象从集合中删除后处理对象。集合保留其对象,因此必须在删除对象时发送-release消息。因此,如果您从集合中删除对象并尝试使用它,则不能保证它尚未被释放。

在这种情况下,您需要将-retain发送给对象,但它仍在收集中,以确保它在删除后仍然有效。

1

为了通用,如果您需要它,可以保留一个对象。

+0

而当你没有分配它在第一个地方。 – user210504 2011-01-27 23:49:30

2

使用和init或copy方法创建对象时,对象以保留计数1来到您的位置,因此您不需要保留这些对象,但需要释放它们。

如果您将它存储到类似NSArray或NSDictionary的集合中,集合将保留它,并在删除对象时将其释放。但是,您仍然拥有该对象,因此您还需要释放它。存储后释放它是合理的。

除此之外,你可能会得到一个自动释放对象,如果你希望它会超过当前运行循环迭代,你可能想保留它。

相关问题