何时在Db for iPhone中存储对象的经验法则

时间:2011-06-04 09:55:22

标签: iphone sqlite core-data

当您应该将内存中的对象切换到iPhone / iPad上的Core Data / Sqlite等数据库中时,是否有一个很好的经验法则?

我听说(我认为是在Big Nerd Ranch,书中) 10.000 的简单对象完全没有问题从iPhone 3GS上的Document目录保存和存储。但我想当你在对象之间有更复杂的关联时,它更容易将它们存储在Core Data中。

您的经验,数据库与数据库有什么关系?

2 个答案:

答案 0 :(得分:1)

可能从easiest存储方法,plists或普通文件开始。当(如果)您实际发现性能或数据完整性问题时,请切换到更强大的解决方案。

答案 1 :(得分:1)

请参阅此previous answer to a similar question.

简短摘要:

  1. 当数据集相对较小且复杂度较低时,可以将写入磁盘的集合(NSArray,NSDictionary,NSSet)用作plist。
  2. 当数据集非常大但复杂度低时,例如一个库卡文件,其中所有卡完全相同且彼此无关,那么原始SQL可以是一个很好的解决方案。
  3. 当复杂性很高时,即许多不同类型的对象都彼此相关时,无论数据大小如何,都要使用Core Data。
  4. 但是,一旦您成功攀登Core Data的学习曲线,它就会变得如此易于使用,您始终默认使用它。我现在自动使用它,甚至是我曾经使用过数组的东西。

    如果您打算编写Apple API应用程序,那么花一两个星期学习核心数据可以充分利用您的时间。它不仅仅是一个持久性API,它是一个API,用于创建和使用Apple API使用的模型 - 视图 - 控制器设计的整个模型层,

    (顺便说一下,我对Big-Nerd Ranch的建议是关于基于plist的持久性应用于MacOS。你的内存和CPU限制在iOS设备上要严格得多。另外,iOS设备使用闪存驱动器因此对磁盘操作的惩罚很远,远低于使用机械硬盘的台式机等设备。)