Objective-C保存数据的最佳选择

时间:2011-08-19 13:51:43

标签: objective-c sqlite core-data plist nskeyedarchiver

我目前正在寻找在iPhone应用程序中保存数据的最佳方法;在打开和关闭应用程序之间将持续存在的数据。我已经研究过使用NSKeyedArchiver进行归档,并且我已经成功地使其工作。但是,我注意到如果我尝试保存多个对象,每次保存时它们都会被覆盖。 (基本上,用户将能够创建他/她想要的事物列表,保存列表,创建更多列表,保存所有列表,然后能够返回并选择任何这些列表以便在将来加载日期。)

我听说过SQLite,核心数据,或使用.plists存储多个数据数组,这些数据将随着时间的推移而持续存在。有人能指出我保存数据的最佳方向吗?谢谢!

5 个答案:

答案 0 :(得分:2)

核心数据非常强大且易于使用,一旦您克服了初始学习曲线。这是一个很好的教程,可以帮助您入门 - clicky

答案 1 :(得分:1)

作为CoreData的简单而强大的替代方案,请查看ActiveRecord for Objective-C。 https://github.com/aptiva/activerecord

答案 2 :(得分:1)

我会选择NSKeyedArchiver。听起来问题是你没有正确组织图表。

从技术上讲,您有一个列表列表,但您只保存内部嵌套列表。

您应该将列表添加到“超级”列表中,然后归档超级列表。

CoreData / SQL似乎与您描述的内容有点不同。

答案 3 :(得分:1)

您也可以尝试framework。它非常简单易用。 它基于ActiveRecord模式,允许使用迁移,关系,验证等。

它仅使用sqlite3,没有CoreData,但您不需要使用原始sql或手动创建表。

只需描述您的iActiveRecord并享受。

答案 4 :(得分:0)

您希望在CoreData入门时查看this tutorial by Ray Wenderlich。它的简短,并介绍了CoreData的基础知识。

基本上,如果您要存储少量数据,您只想查看plists。简单的设置或首选项列表。比这更大的东西,它特别针对性能而分解。在iTunesU上有一个很棒的视频,LinkedIn上的开发人员描述了plist和CoreData之间的性能指标。

归档工作,但是要存储和检索您的数据,以及将性能挑战放在背后,将会有很多工作。所以我不会去那里。我会使用CoreData。它非常简单,如果您了解this stack overflow question中的对象,那么您就知道了开始所需的一切。