6

我正在构建一个社交应用程序,其功能包括提要、个人资料、朋友和关注者。我正在使用核心数据来持久保存所有对象。当用户启动应用程序时,数据会从核心数据中获取并立即显示给用户,但我也在后台获取更新。

问题是目前我将所有内容都保存在核心数据中。例如,如果我访问朋友的个人资料,我会获取朋友的提要对象并将其保存在核心数据中。现在下次我访问同一个朋友的个人资料时,我只会显示最初保存的提要(并在后台更新)。

我应该这样做吗?将所有内容保存在核心数据中是否有任何问题(以获得更好的用户体验),或者当数据集变得更大时可能会出现任何限制或问题?是否有一些我必须遵循的良好做法,以持久保存哪些内容和不保存哪些内容?

谢谢

4

1 回答 1

2

虽然原则上您可以使用您的方法来立即显示一些数据,但有一些重要的权衡。总的来说,我认为你的方法是有问题的。

将您的情况与 iPhone 上的 Mail 应用程序进行比较(至少当您使用具有一定延迟的邮件服务器时)。当您打开邮箱时,您会看到旧邮件以及指示更新正在运行的旋转轮。然后,突然间,显示屏会更新您的所有新消息。您的方法与此非常相似。

这对于邮件消息来说可能没问题,但对于新闻提要和状态消息来说真的可以接受吗?我不这么认为。当情况已经发生变化时(想想“我感觉很好”),陈旧的状态消息(想想“我感觉很沮丧。”)会产生误导,并会导致糟糕的用户体验。

您的 Core Data 存储仍然可以存储所有数据并定期擦除自身。初始提取可能不会显示(并删除)超过某个阈值的项目。同时,持久化更多永久数据(例如好友列表)也很有意义。

于 2012-12-20T18:05:45.683 回答