发送删除消息时,NSMutableArray可能首先保留然后释放两次?

时间:2013-04-11 10:53:35

标签: nsmutablearray retain

这是与this one相关的问题。

当从一个可变数组中删除对象时,我注意到可能有一个'retain'消息发送到该对象,所以我搜索了上面的问题,其中w.m给出了一个答案提到内部实现NSMutableArray可能首先保留对象,然后在删除该对象时释放它两次。

我的问题是:有没有证据证明这一点?或者有人知道任何相关细节?

我在分析以下日志时遇到了这个问题,我知道我的代码有问题,但我关心的不是bug本身,而是它是否是一个事实“会有一些{{1在retain'时工作。

removeObject

1 个答案:

答案 0 :(得分:0)

NSMutableArray在内部做什么并不重要。你不用担心。只要它遵循内存管理规则,即它保留了以后需要保留的任何内容,并且只发布它保留的内容,那么它是否也会在随机位置保留和释放20次并不重要。添加额外的保留 - 释放对永远不会降低程序的正确性。

如果您遇到了崩溃,那么您的代码就会出错。