我发现(例如)像UIPickerView这样的UI对象经常被分配和发布,即使调用相应的dealloc方法(通过使用仪器来证明),堆仍然在成长。
是否有一种方法可以触发自动释放池的优化以改进整个场景?
我的应用程序需要拍照,管理照片和上传到服务器。随着时间的推移,堆变得越来越大,最终使我的应用程序崩溃。**我检查了使用仪器时没有明显的内存泄漏。
有什么帮助或建议吗?
谢谢。
发布于 2011-12-21 03:10:48
您可以在对应用程序有意义的地方创建自己的自动发布池。以下创建自动发布池的方法适用于ARC或不使用ARC。
// Stuff you plan to keep around after finishing the block below
@autoreleasepool {
// Load an image, send to server
}
// The images are released听起来你的记忆需要一段时间才能失控。如果您正在主UI运行循环中执行您的工作,您应该非常定期地进行自动发布,所以我不确定另一个自动释放池是否会帮助您。也许您保留引用的方式是不释放它们,因为它们仍然可以使用。发生许多泄漏是因为没有从数组、集合和字典中删除对象。
https://stackoverflow.com/questions/8583709
复制相似问题