我想知道当您在数组中使用removeObject 删除对象时,是否正确处理了删除的对象。被移除的对象会被释放吗?
NSMutableArray 将释放它。如果这是最后一次保留,它将被释放。从文档中:
与 NSArray 一样,NSMutableArray 的实例维护对其内容的强引用。如果不使用垃圾收集[Jed:iPhone 没有],当您将对象添加到数组时,该对象会收到保留消息。当一个对象从可变数组中删除时,它会收到一条释放消息。如果没有对该对象的进一步引用,则意味着该对象已被释放。如果您的程序保留对此类对象的引用,则该引用将变得无效,除非您在将对象从数组中删除之前向该对象发送保留消息。
See the NSMutableArray 文档 http://developer.apple.com/mac/library/documentation/Cocoa/Reference/Foundation/Classes/NSMutableArray_Class/Reference/Reference.html。他们的例子,其实是指removeObjectAtIndex:
:
id anObject = [[anArray objectAtIndex:0] retain];
[anArray removeObjectAtIndex:0];
[anObject someMessage];
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)