ios - 如何将每种食物添加到 Realm 中自己的食物类别?

标签 ios swift realm

我有这样的嵌套类:

struct Category {
    let name : String
    let foods : [Food]
}

struct Food {
    let name : String
    let price : Double
}

let categories = [
    Category(name: "Breakfast", foods : [
        Food(name: "Hafta İçi Kahvaltısı", price: 18.0),
        Food(name: "Pazar Kahvaltısı", price: 25.0),
        Food(name: "Diyet Kahvaltı", price: 22.0),
        Food(name: "Köy Kahvaltısı", price: 15.0),
        Food(name: "Ege Kahvaltısı", price: 30.0)]),
    Category(name: "Hamburger", foods : [
        Food(name: "Big TezBurger", price: 26.0),
        Food(name: "TezRoyal", price: 24.0),
        Food(name: "Double TezzBurger", price: 17.0),
        Food(name: "TezChicken", price: 21.0),
        Food(name: "Köfteburger", price: 28.0)])
]

我想在 Realm 数据库中使用上述结构。

首先,我使用以下代码在 Realm 中创建了 Category 表(类):

let realm = try! Realm()
var categoryDB = Category()
categoryDB.name = "Breakfasts"
try! realm.write {
     realm.add(categoryDB)
  }

在创建Category 表后,我添加了以下代码来为每个类别填充Food

categoryDB.name = "Breakfasts"
categoryDB.foods[0].name = "Hafta İçi Kahvaltısı"
categoryDB.foods[0].price = 18.0

categoryDB.name = "Breakfasts"
categoryDB.foods[1].name = "Köy Kahvaltısı"
categoryDB.foods[1].price = 20.0

但我收到类似Terminating app due to uncaught exception 'RLMException', reason: 'Index 0 is out of bounds (must be less than 0).'这样的错误。

结论:我需要在 Breakfast 类别中吃 5 种不同的早餐,在 Lunch 类别中吃 5 种不同的食物。在我的 Category 表下没有作为 foods 属性的 Food 列表数据。

链接中我的详细 Realm 工作室屏幕

https://youtu.be/WXnxDA15Rho

最佳答案

当您创建categoryDB 时,它的foods 是空的。这就是您获得索引越界异常的原因。

您想创建 Food 并将其附加到 categoryDB.foods

let categoryDB = CategoryDB()

categoryDB.name = "Breakfasts"

let food1 = Food()
food1.name = "Hafta İçi Kahvaltısı"
food1.price = 18.0

let food2 = Food()
food2.name = "Köy Kahvaltısı"
food2.price = 20.0

categoryDB.foods.append(objectsIn: [food1 , food2])

try! realm.write {
    realm.add(categoryDB)
}

关于ios - 如何将每种食物添加到 Realm 中自己的食物类别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59480390/

相关文章:

ios - BRAOfficeDocumentPackage 未声明的类型

javascript - 在容器上缩放 iOS 应用图像

ios - 使用自动调整单元格设置 UICollectionView 后出现异常

ios - 域@count查询问题

ios swift核心图形-字符串颠倒

ios - 向上滚动时隐藏大标题

ios - 即使在 ARC 下,在 GCD 中使用 Realm 时,我们是否必须使用显式自动释放池

android - 如何使用 Intent 传递 RealmObject?

ios - Swift - 添加按钮操作后无法从 TableView 重新加载数据

ios - 为 ColorPicker 创建一个名为 Color 的计算变量的绑定(bind)