我有一个NSMutableArray对象(在我的情况下是一些系统)。我正在通过读取XML来为系统请求新数据,并且从中我正在创建一些新系统。在某些情况下,我想更新我的NSMutableArray中的系统,有时不... 因此,当我想要更新时,我说
system = [updatedSystem copy];
(我的系统模型实现了- (id)copyWithZone: (NSZone *) zone
)
我的问题是,我是否需要在system = [updatedSystem copy];
之前发布我的旧系统对象?
即。
[system release];
system = [updatedSystem copy];
答案 0 :(得分:3)
是的,如果复制它,则必须release
,因为复制的对象在从复制功能返回之前不会被释放。
答案 1 :(得分:2)
规则是,无论何时使用init,new或copy,您都将获得释放的所有权。如果您复制了它,则您有责任将其复制。
请参阅Apple的以下文章:http://developer.apple.com/library/mac/#documentation/cocoa/conceptual/MemoryMgmt/Articles/MemoryMgmt.html