如何使网络请求中的iOS应用程序感觉很重要

时间:2016-01-04 15:13:45

标签: caching core-data nscache

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

如何让应用程序看起来更具响应性?

  1. 当检索数据时,说出当前朋友的列表,我是否将这些朋友存储在Core Data中,然后通过在刷新期间添加或删除朋友来更新我的Core Data模型?
  2. 我应该使用某种缓存工具,例如NSCache
  3. 我是否只是在网络请求运行时在屏幕上显示加载程序,然后在完成后更新UI?
  4. 我看到Facebook和Instagram等应用程序在应用程序启动时会发送一些帖子,同时他们会获取最新数据,但我不确定他们是如何实现此目的的。

    你能给我一个合适的指示吗?

1 个答案:

答案 0 :(得分:1)

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

需要频繁网络更新的应用(如Facebook)通常会使用iOS的后台获取系统。如果您选择加入此项,iOS会不时在后台启动您的应用,以便获取新数据。如果您的应用将该数据保存在设备上的某个位置,则当用户点按您的应用图标时,该数据就已存在。

使用后台提取非常简单 - 您可以将相应的密钥添加到Info.plist,然后在您的应用代理中实施application(application:, performFetchWithCompletionHandler:)