iOS REST 应用内存优化

iOS REST App memory optimization

我正在尝试制作一个典型的无限滚动移动应用程序,该应用程序通过 REST API 从服务器获取数据并使用该数据填充 table 视图。当用户到达底部单元格时,将加载新的数据部分,因此内存使用量会随着时间的推移而增加。

在这种情况下,内存消耗值得担心吗?应用程序 运行 可以这样内存不足吗?如果是这样,在此类应用程序(Twitter、Facebook 应用程序等)中处理内存管理的常用方法是什么?

也许我应该卸载最近加载的数据或类似的东西?

感谢任何 hints/articles/sample 个项目。

在典型的 iOS 应用程序中,内存主要由 UIKit 和图像消耗。你可以用 Xcode 仪器来证明这一点。

所以我假设这是你的情况。

您提到您正在使用 UITableView。它经过精心设计,可以节省内存并提高滚动性能。但这需要您重复使用该单元格。您可以检查 UITableViewdequeueReusableCellWithIdentifier:。详情请参考iOS Developer Library

如果您重复使用单元格,UITableView 将在整个生命周期中只分配几个 UITableViewCell。滚动时,它会自动重新使用可见区域之外的 UITableViewCell。这样内存使用量应该几乎不变。

关于图像,您必须使用缓存(或对象池)以限制内存使用并保持滚动性能不受影响。