首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iOS -有什么方法可以触发内存清理吗?

iOS -有什么方法可以触发内存清理吗?
EN

Stack Overflow用户
提问于 2011-12-21 00:24:05
回答 1查看 348关注 0票数 0

我发现(例如)像UIPickerView这样的UI对象经常被分配和发布,即使调用相应的dealloc方法(通过使用仪器来证明),堆仍然在成长。

是否有一种方法可以触发自动释放池的优化以改进整个场景?

我的应用程序需要拍照,管理照片和上传到服务器。随着时间的推移,堆变得越来越大,最终使我的应用程序崩溃。**我检查了使用仪器时没有明显的内存泄漏。

有什么帮助或建议吗?

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2011-12-21 03:10:48

您可以在对应用程序有意义的地方创建自己的自动发布池。以下创建自动发布池的方法适用于ARC或不使用ARC。

代码语言:javascript
复制
// Stuff you plan to keep around after finishing the block below
@autoreleasepool {
    // Load an image, send to server
}
// The images are released

听起来你的记忆需要一段时间才能失控。如果您正在主UI运行循环中执行您的工作,您应该非常定期地进行自动发布,所以我不确定另一个自动释放池是否会帮助您。也许您保留引用的方式是不释放它们,因为它们仍然可以使用。发生许多泄漏是因为没有从数组、集合和字典中删除对象。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8583709

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档