如何将每种食物添加到领域中自己的食物类别?
How to add each food to own food category in realm?
我嵌套了 class 这样的:
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
table(class):
let realm = try! Realm()
var categoryDB = Category()
categoryDB.name = "Breakfasts"
try! realm.write {
realm.add(categoryDB)
}
在我创建 Category
table 之后,我添加了以下代码以填充每个类别 Food
table
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
table下没有Food
列表数据作为foods
属性.
link
我的详细领域工作室屏幕
当您创建 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)
}
我嵌套了 class 这样的:
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
table(class):
let realm = try! Realm()
var categoryDB = Category()
categoryDB.name = "Breakfasts"
try! realm.write {
realm.add(categoryDB)
}
在我创建 Category
table 之后,我添加了以下代码以填充每个类别 Food
table
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
table下没有Food
列表数据作为foods
属性.
link
我的详细领域工作室屏幕当您创建 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)
}