iOS - 有没有办法触发内存清理?

时间:2011-12-21 00:24:05

标签: iphone ios4 ios5

我发现(例如)一个UI对象,比如UIPickerView,经常被分配和释放,甚至调用相应的dealloc方法(通过使用Instruments证明),Heap仍然在成长。

有没有办法触发自动释放池的优化以改善整个场景?

我的应用程序需要拍照,管理照片并上传到服务器。经过一段时间,Heap变大了,最后它崩溃了我的应用程序。 **我使用仪器检查了没有明显的内存泄漏 *

任何帮助或建议?

感谢。

1 个答案:

答案 0 :(得分:0)

您可以在对您的应用程序有意义的位置创建自己的自动释放池。以下创建自动释放池的方法可以使用或不使用ARC。

// Stuff you plan to keep around after finishing the block below
@autoreleasepool {
    // Load an image, send to server
}
// The images are released

这听起来好像花了一些时间让你的记忆失控。如果你在主UI运行循环中做你的工作,你应该经常发生自动释放,所以我不确定另一个自动释放池会帮助你。也许你保留你的引用,使它们不被释放,因为它们仍然可以被使用。发生许多泄漏是因为没有从数组,集合和字典中删除对象。