重置NSMutableArray

6

如何最快速地重置NSMutableArray?

4个回答

27

- [NSMutableArray removeAllObjects] 对你无效?


愚蠢的是,它似乎实际上释放了对象...这有什么意义呢?无论如何,在removeAllObjects之前加上[NSMutableArray retain]就可以解决这个问题。 - jowie
1
Joe - 在这种情况下,你的代码有问题。请参阅http://developer.apple.com/mac/library/documentation/cocoa/conceptual/MemoryMgmt/Articles/mmObjectOwnership.html。 - Jonathan del Strother
3
奇怪的是,没有人提到只需释放NSMutableArray并创建一个新的。我非常好奇,在给定大量对象的情况下,哪一个更快。 - Ying

5

removeAllObjects


3

removeAllObjects 如果你的意思是只想清空数组,那么可以使用此方法。


1
如果你正在尝试做我认为你正在尝试做的事情,即保持数组为空但不释放它,或者至少在下次需要时使其可用,那么首先你需要在类中设置一个变量或属性来表示这个变量:
NSMutableArray *mutableArray;

接下来,在需要空数组的位置之前添加以下代码:

if (!mutableArray) {
              mutableArray = [[NSMutableArray alloc] init];
       }

现在你可以安全地调用。
[mutableArray removeAllObjects];

无需担心一旦空数组就变得不可用。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接