如何使 iOS 应用在网络请求中变得响应迅速

How to Make iOS App Heavy in Network Requests Feel Responsive

我正在开发一个基于社交的应用程序。它主要处理为特定 activity 创建时间表并邀请其他用户在特定日期和时间加入。但是,该应用程序使用 Parse 作为其后端。几乎每一个动作都需要一些网络,在低质量的连接上感觉很慢。

如何使应用程序看起来响应更快?

  1. 当检索到数据时,比如说当前朋友的列表,我是否将这些朋友存储在 Core Data 中,然后通过在刷新过程中添加或删除朋友来更新我的 Core Data 模型?
  2. 我是否应该使用某种缓存工具,例如 NSCache
  3. 我是否只是在网络请求 运行 时在屏幕上显示加载器,然后在完成后更新 UI?

我看到 Facebook 和 Instagram 等应用程序在启动时会显示一些帖子,同时它们会获取最新数据,但我不确定它们是如何实现的。

你能给我一个合适的方向吗?

保留某种离线缓存很有用,因为这意味着即使您仍在从网络连接加载新数据,也可以立即显示一些数据。 Core Data 对此很有用,但这实际上取决于数据的性质以及您的应用程序如何使用它。 NSCache 可能不是您想要的,因为它只将数据保存在内存中,不会在您的应用下次运行时保存。

需要频繁网络更新的应用程序(如 Facebook)通常使用 iOS 的后台获取系统。如果您选择加入此功能,iOS 将不时在后台启动您的应用程序以允许其获取新数据。如果您的应用将该数据保存在设备上的某处,当用户点击您的应用图标时,它就已经存在了。

使用后台获取非常简单——您将适当的键添加到 Info.plist,然后在您的应用委托中实现 application(application:, performFetchWithCompletionHandler:)