我是否需要在NSMutableArray中发布对象?

Bin*_*ian 0 iphone memory-management objective-c nsmutablearray

可能重复:
Cocoa内存管理NSArray与对象

我有一个NSMutableArray填充了一些对象.

例如:

...
id test = [NSObject new]; 
NSMutableArray *myArray = [NSMutableArray new];
[myArray addObject: test];
...
Run Code Online (Sandbox Code Playgroud)

当多个对象需要对该数组的引用时,我不能只使用方法" - removeAllObjects".所以我只在我自己的类的" - dealloc"方法中使用数组的发布.

- (void)dealloc {
    [myArray release];
    [super dealloc];
}
Run Code Online (Sandbox Code Playgroud)

那么我的对象名称"test"泄露了,因此我需要做更多的事情吗?

我在文档中找不到答案,对于NSMutableArray的"dealloc"或"release"方法没有意义.在NSObject参考中,他们没有描述NSMutableArray.可能是"内存管理编程指南"中的任何地方(希望如此).

Dav*_*idN 5

容器将保留其包含的对象,并在容器被销毁或从中移除对象时释放它们.您应该在将对象添加到容器后释放它们(因为它们由容器保留,因此您不再需要保留它们).

  • 谢谢你清理. (2认同)