NSArray或NSMutableArray的removeAllObjects方法是否释放内存?
我需要知道NSArray或NSMutableArray的removeAllObjects方法是否释放内存。
如果我的数组有10000个元素。 我可以使用吗?
[array removeAllObjects];
释放内存并重新加载其他元素? 或者它泄漏内存?
谢谢
例如,如果我的NSMutable数组的大小为20mb,并带有10.000个元素,例如…如果我使用removeAllObjects方法…它的大小是0mb?
NS [Mutable]数组是对象的引用的集合。 调用-removeAllObjects
nils这些引用。 arrays本身使用的容量和内存保持不变。 在NSMutableArray的情况下,这些引用可以被重用来指向其他对象。 NSArray缺less方法-removeAllObjects
因为它不可变。
对于大量的对象, removeAllObjects
比initWithCapacity
稍微慢一些。 当对象数量达到极限时,真正的性能差异将不得不避免增长arrays。
正如其他人所指出的那样,只有在没有更强的引用的情况下才能释放这些对象。
是的,它释放所有的对象,它不会泄漏。 (当然,它并不明确地释放它们,只有当它们被引用时才被释放。)
不,它不会泄漏物体。 除了更方便,更快速之外,它与单独去除每个对象相同。
- 在UIViewController被popup之后,MKMapView autorelease不会调用dealloc
- ios UIWebView中的大量内存泄漏
- UIWebView泄漏,JS垃圾收集器和WebCore虚拟机
- 在使用UIImagePickerControllerOriginalImage从UIImagePickerController获取图像时获取内存警告
- 内存消耗增加但是泄漏未检测到泄漏时,如何处理iOS中的泄漏?
- 内存泄漏在main.m而在仪器分析?
- 内存泄漏iOS(UIImageView,UIImage,CGImage)没有在ARC上释放
- 使用AFNetworking下载文件时的内存警告
- ios fmdb内存泄漏