我需要知道NSArray或NSMutableArray的removeAllObjects方法是否释放内存。
如果我的数组有10000个元素。
我可以使用
[array removeAllObjects];
释放内存并重新加载其他元素?还是泄漏内存?
谢谢
例
,例如,如果我的NSMutable数组的大小为20mb(例如具有10.000个元素)...如果我使用removeAllObjects方法...其大小将为0mb吗?
最佳答案
NS [Mutable] Array是对对象的引用的集合。调用-removeAllObjects
将使这些引用无效。阵列本身使用的容量和内存保持不变。对于NSMutableArray,可以重复使用这些引用以指向其他对象。 NSArray缺少-removeAllObjects
方法,因为它是不可变的。
对于许多对象,removeAllObjects
将比initWithCapacity
慢一些。真正的性能差异是必须避免在对象数达到限制时增大数组。
正如其他人指出的那样,只有在没有更多对它们的强引用时才释放对象。