何时在 Db for iPhone 中存储对象的经验法则
Posted
技术标签:
【中文标题】何时在 Db for iPhone 中存储对象的经验法则【英文标题】:Rule of thumb for when to store objects in Db for iPhone 【发布时间】:2011-06-04 09:55:22 【问题描述】:对于何时应该将对象从内存中切换到将它们存储在 iPhone/iPad 上的 Core Data/Sqlite 等数据库中,是否有一个好的经验法则?
我听说(我认为是在 Big Nerd Ranch 中,书)在 iPhone 3GS 上的 Document 目录中保存和存储 10.000 个简单对象完全没有问题。但是我想当你在对象之间有更复杂的关系时,更容易将它们存储在 Core Data 中。
你的经历是什么,数据库还是不数据库?
【问题讨论】:
【参考方案1】:看到这个previous answer to a similar question.
简短的总结:
-
当数据集相对较小且复杂度较低时,可以使用集合(NSArray、NSDictionary、NSSet)作为plist 写入磁盘。
当数据集非常大但复杂度低时,例如一个图书馆卡片文件,其中所有卡片都完全相同且彼此无关,那么原始 SQL 可能是一个很好的解决方案。
当复杂性很高时,即许多不同类型的对象都相互关联,无论数据大小如何,都使用 Core Data。
但是,一旦您成功爬上了 Core Data 的学习曲线,它就会变得非常容易使用,以至于您一直默认使用它。我现在自动使用它,即使是我曾经使用数组的东西。
如果您打算练习编写 Apple API 应用程序,最好利用您的时间花一两周时间学习 Core Data。它不仅仅是一个持久化 API,它是一个用于创建和使用 Apple API 使用的 Model-View-Controller 设计的整个模型层的 API,
(顺便说一句,我是 Big-Nerd Ranch 的建议,远低于使用机械硬盘的台式机等设备。)
【讨论】:
【参考方案2】:从easiest 存储方法开始,可能是 plist 或普通文件。当(如果)您确实注意到性能或数据完整性问题时,请切换到更强大的解决方案。
【讨论】:
以上是关于何时在 Db for iPhone 中存储对象的经验法则的主要内容,如果未能解决你的问题,请参考以下文章