保存一组自定义对象,每个对象包含一个自定义对象数组,最好的方法是什么?

时间:2012-05-10 16:23:48

标签: objective-c ios core-data nsuserdefaults

我无法确定哪种方法可以保存我的应用数据。

这是一个食谱应用程序。

我有一个类别类对象数组,其中包含类别标题的NSString变量和一个配方类对象的NSMutable数组(包含3个NSString变量)。

这是我的应用模型的半直观表示:

类别数组包含:

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

...

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

在app load x上创建了多少类别(取决于numberOfCategories int的值)。当然,在重新启动时,我想将配方恢复到适当的类别对象。

希望这不是太混乱 - 我正在采用NSUserDefaults方式并对NSCoding事件进行编码/解码我的自定义对象,但发现它令人困惑,因为我有一个包含自定义对象数组的自定义对象数组。

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

如果您需要进一步澄清,请与我们联系。

2 个答案:

答案 0 :(得分:1)

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

另外,请查看MagicalRecordMOGenerator。这两个开源库使得使用CD变得更加有趣和高效。

答案 1 :(得分:0)

我建议您将对象序列化为XML,这是存储分层数据的好方法。