NSArray或NSMutableArray的removeAllObjects方法是否释放内存?

我需要知道NSArray或NSMutableArray的removeAllObjects方法是否释放内存。

如果我的数组有10000个元素。 我可以使用吗?

[array removeAllObjects]; 

释放内存并重新加载其他元素? 或者它泄漏内存?

谢谢

例如,如果我的NSMutable数组的大小为20mb,并带有10.000个元素,例如…如果我使用removeAllObjects方法…它的大小是0mb?

NS [Mutable]数组是对象的引用的集合。 调用-removeAllObjects nils这些引用。 arrays本身使用的容量和内存保持不变。 在NSMutableArray的情况下,这些引用可以被重用来指向其他对象。 NSArray缺less方法-removeAllObjects因为它不可变。

对于大量的对象, removeAllObjectsinitWithCapacity稍微慢一些。 当对象数量达到极限时,真正的性能差异将不得不避免增长arrays。

正如其他人所指出的那样,只有在没有更强的引用的情况下才能释放这些对象。

是的,它释放所有的对象,它不会泄漏。 (当然,它并不明确地释放它们,只有当它们被引用时才被释放。)

不,它不会泄漏物体。 除了更方便,更快速之外,它与单独去除每个对象相同。