决定使用核心数据还是NSUserDefaults

我在我的应用程序上有一个function,允许用户邀请他们的朋友(通过Facebook或朋友在他们的地址簿中)。 大多数人会拥有<5K的朋友,有些人拥有更多(也许最多有10K个朋友)。

我想跟踪他们邀请的朋友,所以他们不会再邀请他们。 为了做到这一点,我保存在NSUserDefaults的朋友的字典存储这些信息。 我想知道如果NSUserDefaults就足够了,或者如果我需要使用Core Data

此外,我正计划添加一项function,以便邀请朋友参加特定活动。 (在我们的应用程序中有很多事件)。如果我想跟踪哪些朋友被邀请参加哪个事件,那么我应该使用Core Data吗? NSUserDefaults满足吗? (我假设它不会)。 最后,应该使用Core Data还是应该保存在服务器端?

NSUserDefaults实际上是为了存储小部分数据,如设置,首选项和单个值。

您应该使用核心数据来存储一个大的元素列表。 至于你的最后一个问题,没有什么能阻止你使用核心数据和后端来存储你的数据。 实际上,有框架来促进这一点。 看看RestKit 。

你的假设是正确的! NSUserDefaults不足以可靠地存储和查询大量的数据。 如果你有一个后端(服务器上的数据库)来存储事件及其被邀请者来保持用户信息的一致性(如果用户从其他应用程序支持设备login到你的应用程序,那么他会得到所有他存储的信息)。 还可以在数据库中创build表格,以便您可以轻松查询所需的信息。 就像每个事件都有一个存储/更新其邀请信息的字段。 当你想知道你的单一查询应该带着你所有的需要结果。 这会给你的应用程序带来非常好的效果,即你的应用程序运行速度非常快。

你打算在你的字典中保存什么? 如果只是string,那么没关系,但如果你打算存储图像,我会推荐Core Data。