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

标签 objective-c ios core-data nsuserdefaults

我很难决定哪种方法是保存我的应用程序数据的最佳方法。

这是一个食谱应用。

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

这是我的应用程序模型的半可视化表示:

类别数组包含:

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

...

等等

用户能够创建新的食谱,并且食谱对象存储在选定的类别对象中。

在应用程序加载时创建 x 数量的类别(取决于 numberOfCategories int 的值)。当然,在重新启动时,我想将食谱恢复到它们适当的类别对象中。

希望这不会太令人困惑——我正在使用 NSUserDefaults 方式并执行 NSCoding 来编码/解码我的自定义对象,但发现它令人困惑,因为我有一个自定义对象数组,其中包含一个自定义对象数组。

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

如果您需要进一步说明,请告诉我。

最佳答案

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

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

关于objective-c - 保存一个自定义对象数组,每个对象包含一个自定义对象数组,最好的方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10538309/

相关文章:

objective-c - 从 C 代码调用 Objective-C 方法

objective-c - setContentOffset:animated:之后滚动被禁用,我在做什么错?

ios - 在 Interface Builder 中添加约束时 Xcode 无限期挂起

ios - 自动将 NSString 转换为 NSLocalizedString?

ios - 如何获取当前设备的图片(如iTunes中所示)?

ios - 如何在具有不同内容的 Controller 中多次使用自定义 UIView?

ios - 是否可以在基于文档的应用程序中使用 Core Data?

iphone - 使用 .@count 谓词进行简单获取需要很长时间(约 30 秒)

ios NSFetchRequest 两个相关表

objective-c - 为什么不调用 UIPinchGestureRecognizer 而 scrollViewDidEndZooming 是?