我需要内存管理课程.我有一个使用多个视图(大约10个)的应用程序,其中一些附加到选项卡控制器.问题是我正在使用图像(我从Web服务加载的许多图像).我面临以下问题.
当我在表格视图中滚动时,内存不断增加(为什么?) - 我从Apple的站点检查了CustomTableViewCell应用程序,当我使用Instruments运行它时,它显示相同的符号.
我正在使用带有许多对象的自动释放,但我发现这些对象实际上并没有被释放并且内存已经连线.我怎样摆脱这些物体?
如何告诉NSAutoreleasePool定期释放未使用的对象?我认为这可以帮助我摆脱有线内存.但我能这样做吗?
有没有Apple或其他人(书籍或在线文章)解释如何使用仪器的例子(稍微详细的例子?)并微调应用程序的内存和性能?
谢谢.
既然我们已经对自动释放的"只说拒绝"答案,我想我会在如何更有效地使用自动释放方面添加一个提示.无论好坏,不是每个人都会完全避免自动释放 - 如果没有其他原因,因为Apple提供了许多方便的方法来交给你自动释放的对象.
您不能只告诉自动释放池释放您未使用的任何对象.没有垃圾收集,它怎么会知道?
你可以做的是创建一个本地自动释放池,然后当你不再需要本地自动释放的对象时释放它.如果你有一个你正在创建自动释放对象的块,你将确保通过在块的开头创建一个本地自动释放池来释放它们(只需分配/初始化它,不需要魔法),然后释放池.块结束.瞧,池中的物品也被释放了.
自动释放池嵌套,因此如果您这样做,请记住这一点.如果您释放自动释放池,请确保它是最近分配的池而不是其他池.