决定使用Core Data还是NSUserDefaults

时间:2014-06-04 09:01:32

标签: ios objective-c core-data nsuserdefaults

我的应用程序上有一项功能,允许用户邀请他们的朋友(通过Facebook或他们的地址簿中的朋友)。大多数人都会< 5K的朋友有一些人有更多(可能最多10K的朋友?)。

我想跟踪他们邀请的朋友,以便他们不会重新邀请他们。为了做到这一点,我在NSUserDefaults保存了一个朋友的词典来存储这些信息。我想知道NSUserDefaults是否足以满足这一要求,或者我是否需要使用Core Data

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

3 个答案:

答案 0 :(得分:16)

NSUserDefaults实际上是用于存储小块数据,例如设置,首选项和单个值。

您应该使用Core Data存储大量元素。至于您的上一个问题,没有什么能阻止您同时使用Core Data和后端来存储数据。事实上,有一些框架可以促进这一点。看看RestKit

答案 1 :(得分:1)

您的假设是正确的! NSUserDefaults不足以存储和查询大量数据。如果您有后端(服务器上的数据库)来存储事件及其被邀请者保持用户信息的一致性(如果用户从其他应用程序支持人员登录到您的应用程序),则建议这样做然后,他将获得他存储的所有信息。还可以使用您可以轻松查询所需信息的方式在数据库中创建表。对于每个事件,都有一些字段存储/更新其邀请信息。如果您想知道您的单个查询应该包含您所有需要的结果。这会让您的应用对您的应用运行得非常快的用户产生非常好的效果。

答案 2 :(得分:0)

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