使用 Swift 在 Realm 中嵌套数组

Nesting arrays in Realm with Swift

我已经阅读了几个有关如何将数据数组存储到 Realm 的示例。尽管如此,我还是没有找到一个特别清楚的例子。

简而言之,我有一个(简化的)JSON,如下所示,我想将其存储在 Realm 中。如何向 Realm 添加一组配料,使其包含在一组菜单项中?

{
   "menuItems": [
      {
         "name": "name 1",
         "ingredients": ["ingredient 1", "ingredient 2"]
      },
      {
         "name": "name 2",
         "ingredients": ["ingredient 1", "ingredient 2", "ingredient 3"
         ]
      }
   ]
}

我的领域模型设置如下:

class MenuItemsRealm: Object {

    @objc dynamic var name: String = ""
    var ingredients = List<IngredientItemsRealm>()
}

class IngredientItemsRealm: Object {

    @objc dynamic var ingredientItem: String = ""
} 

在您的 JSON 中,您声明 menuItem 对象有一个名为 ingredients 的 property/variable,它包含一个 String 数组。您可能想要做的是创建一个包含特定 ingredientItem property/variable.

对象数组

为了举例说明您的 JSON 应该是这样的:

{
   "menuItems": [
      {
         "name": "name 1",
         "ingredients": [
             {
                 "ingredientItem": "item name"
             }
         ]
      }
   ]
}