2012-05-10 221 views
1

我很难决定哪个是保存我的应用程序数据的最佳方法。保存每个包含自定义对象数组的自定义对象数组,最好的方法?

这是一个食谱应用程序。

我有一个category category对象的数组,它包含一个NSString类别标题变量和一个NSMutable Recipe类对象数组(包含3个NSString变量)。

这里是我的应用程序模型的半视觉表示:

分类的数组包含:

  • 类别对象1 - >包含字符串标题和配方的可变数组对象
  • 类别对象2 - >包含字符串标题和配方的可变数组对象

...

用户可以创建新配方,配方对象存储在选定的类别对象中。

论类别的应用负载x量被创建(取决于numberOfCategories INT的值)。当然,重新启动后,我想将食谱恢复到适当的类别对象。

希望这不是太混乱了 - 我要去的方式NSUserDefaults的和做的NSCoding事情编码/解码我的自定义对象,但感到十分困惑,因为我有自定义对象的数组包含自定义对象的数组。

如果是将我的项目转换为使用核心数据的最佳途径,我会接受这个想法 - 但这对于我的应用程序的简单性来说似乎过于复杂(预填充我的SQLite数据库的类别等)等)。

让我知道你是否需要进一步澄清。

回答

1

使用CoreData。听起来就像你至少需要两个独立的实体并建立它们之间的关系(Recipe和RecipeObject)。 NSUserdefaults非常适合存储需要保存的少量数据,但对您的用例来说并不是很好。

此外,检查出MagicalRecordMOGenerator。这两个开放源代码库使CD工作更加有趣和富有成效。

+1

去核心数据路线。经过一段学习曲线,没有出汗。绝对是最好的路线。 Ray Wenderlich教程是最平易近人的。感谢您的建议和GitHub资源。 – LazerLex

0

我建议你你的序列化对象作为XML是存储分层数据的好方法。

相关问题