2011-06-04 34 views
1

当您应该从内存中将对象切换到像iPhone/iPad上的Core Data/Sqlite这样的数据库中时,是否有一个很好的经验法则?关于何时将对象存储在Db中的经验法则

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

什么是你的经验,数据库还是数据库?

回答

1

看到这个previous answer to a similar question.

简短的摘要:

  1. 当数据集相对较小,低复杂度,可以使用写入到磁盘的plist集合(的NSArray,NSDictionary的,NSSet中)。
  2. 当数据集非常大但复杂度低时一个库卡文件,其中所有的卡完全相同并且彼此无关,那么原始SQL可以是一个很好的解决方案。
  3. 当复杂度高时,即许多不同类型的对象都彼此相关时,请使用核心数据,而不考虑数据大小。

但是,一旦您成功攀登Core Data的学习曲线,它变得非常容易使用,以至于您一直默认使用它。我现在自动使用它,即使是我曾经使用过阵列的东西。

如果您打算编写Apple API应用程序,那么花好几周或者两周的时间来学习Core Data会非常有用。它不仅仅是一个持久性API,它是一个用于创建和使用Apple API使用的模型 - 视图 - 控制器设计的整个模型层的API,

(顺便说一句,我很漂亮的大Nerd牧场的建议基于plist的持久性应用于MacOS,iOS设备的内存和CPU约束更加紧密,另外,iOS设备使用闪存驱动器,因此对于磁盘操作的损失远远低于使用机械硬盘驱动器的台式机等设备。)

1

easiest存储方法开始,可能是plist或plain文件。如果(如果)您确实发现了性能或数据完整性方面的问题,请切换到更强大的解决方案。