我正在构建一个包含Feed,个人资料,朋友和关注者等功能的社交应用。我正在使用核心数据来持久保存所有对象。当用户启动应用程序时,数据将从核心数据中提取并立即显示给用户,但我也在后台获取更新。
问题是目前我正在将所有内容保存在核心数据中。例如,如果我访问朋友个人资料,我会获取朋友的Feed对象并将其保存在核心数据中。现在,当我下次访问同一位朋友的个人资料时,我最初只显示已保存的Feed(并在后台更新)。
我应该这样做吗?将核心数据中的所有内容保存(以获得更好的用户体验)是否存在任何问题,或者在数据集变大时是否存在任何限制或问题?在保存什么和不保存什么方面,我是否必须遵循一些良好做法?
由于
答案 0 :(得分:2)
虽然原则上你可以使用你的方法来立即显示一些数据,但有一些重要的权衡。总的来说,我认为你的方法存在问题。
将您的情况与iPhone上的Mail应用进行比较(至少当您使用具有一定延迟的邮件服务器时)。当您打开邮箱时,您将看到旧邮件以及指示正在运行更新的旋转轮。然后,突然,显示更新所有新消息。你的方法与此非常相似。
对于邮件消息可能没问题,但新闻提要和状态消息是否真的可以接受?我不这么认为。当情况已经改变时(认为“我感觉很好。”)陈旧的状态消息(想想“我感觉很蓝。”)会产生误导,并导致令人沮丧的用户体验。
您的Core Data商店仍然可以存储所有数据并定期擦除自身。初始提取可以使得未显示(并删除)超过特定阈值的项目。同时,保留更多永久性数据(例如朋友列表)非常有意义。