哪个持久性内存是更好的选择?

时间:2012-01-26 20:24:34

标签: objective-c ios core-data

需要保存一些持久数据。数据只包含3或4个数组,其中包含100-200个单值条目。

(array) data
(
  (
    (dictionary) key -> value
  )
  (
    (dictionary) key -> value
  (
  //etc
)

这些只是在选择器中显示的简单列表。

到目前为止,我已经使用NSUserDefault来存储单个字典值,我想知道它是否足以满足这些新数据还是需要考虑使用Core Data?

此时此刻,我没有看到我的程序需要更多的数据。

3 个答案:

答案 0 :(得分:2)

NSUserDefaults不应该对您描述的数据使用有任何问题。

那就是说,这并不意味着它是理想的解决方案。 NSUserDefaults真正用于处理用户首选项。因此,如果这些值不是首选项,那么NSUSerDefaults并不适合它们。 (不是说它不起作用)

CoreData可能对您的情况有点过分,但是在初始学习曲线上可能值得拥有这种技能。

如果您的数据是一致的,另一种解决方案是简单地使用NSArray或NSDictionary类。

NSUserDefault doc - http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSUserDefaults_Class/Reference/Reference.html

答案 1 :(得分:1)

真的取决于任务。

您应该回答以下问题:

  1. 这些数据应该多久更改一次?
  2. 应该多久查询一次这些数据?
  3. 您想对此数据使用哪种查询?
  4. 据我所知,如果你只需要在选择器中显示它们,你显然可以使用NSUserDefaults或plist文件在启动之间保存这些数据。

    和NSArray / NSDictionary在app中使用它。

答案 2 :(得分:0)

访问或更改的频率如何?我猜想NSUserDefaults很好。