iPhone:持久存储的类型

iPhone:持久存储的类型,iphone,xcode,core-data,plist,Iphone,Xcode,Core Data,Plist,我想知道哪种类型的持久存储在什么情况下最合适,比如我如何决定在哪里使用iPhone应用程序的核心数据、属性列表或存档 谢谢很难推荐一个好的持久性商店,因为你没有提到你的应用程序的需求,但这里有一个概述: 90%的情况下,我会推荐核心数据。使用核心数据,您可以根据对象类型、关系和属性定义数据模型,核心数据构建数据库,并根据需要保存和加载数据。第一次学习需要一段时间,但它比我所知道的任何其他解决方案都更加健壮 如果你有特殊的要求(例如一次删除数千个对象,等等),并且你不介意你的手有点脏,考虑 SQL

我想知道哪种类型的持久存储在什么情况下最合适,比如我如何决定在哪里使用iPhone应用程序的核心数据、属性列表或存档


谢谢

很难推荐一个好的持久性商店,因为你没有提到你的应用程序的需求,但这里有一个概述:

90%的情况下,我会推荐核心数据。使用核心数据,您可以根据对象类型、关系和属性定义数据模型,核心数据构建数据库,并根据需要保存和加载数据。第一次学习需要一段时间,但它比我所知道的任何其他解决方案都更加健壮

如果你有特殊的要求(例如一次删除数千个对象,等等),并且你不介意你的手有点脏,考虑<强> SQLite 。您必须自己创建数据库,自己检索、格式化和保存数据,如果数据模型发生更改,则处理自己的迁移,等等


如果您的需求非常小(例如,持久化单个简单值数组),您可以使用plist文件添加到igul222的anwser中,如果您的数据存储需求非常小,并且每次访问应用程序时都需要应用程序可以使用数据,您还可以将数据存储在NSUserDefaults中。但是,如果卸载应用程序,则会丢失此信息

如果数据需要频繁更新和查找,请使用Sqlite


如果数据大小较小且为只读,则不需要执行更新操作,请使用属性列表

直接使用SQLite从来都不是一个好的答案。开销不足以证明它的用途。核心数据,它持续存在于SQLite,是正确的答案,除了在一些非常罕见的情况下。。。如果应用程序需要将新数据与远程数据库同步,我相信使用sqlite比使用coreData更好,coreData使用“previate”和“un-knowledge”表结构,其他应用程序无法使用它。。。但是如果使用sqlite,那么我认为应用程序只需要下载最新的sqlite数据文件并替换旧的本地sqlite文件,否则iPhone应用程序必须是预插入操作……当然,coreData提供了很好的使用框架,但根据我的经验,它似乎并不完美。。。例如:如果一个管理对象的“主”有一个属性设置对象“细节”,(这种情况最类似于“主”和“细节”关系)一旦构建了管理对象,属性“细节”似乎也被构建了,考虑到性能问题,我很奇怪为什么不使用“懒惰加载”…同样,我认为coreData也不能提供良好的事务管理。。。只是个人的想法。。。欢迎指出我的错:-)谢谢。当做