【发布时间】:2017-03-15 12:10:06
【问题描述】:
我的 Realm 中的对象存在继承问题。
你能看一下吗。我有:
- 一个对象
Activity - 一个对象
Sport,我想成为Activity的子类 - 一个对象
Seminar,我想成为Activity的子类
为了实现这一点,我根据文档编写了以下代码:
// Base Model
class Activity: Object {
dynamic var id = ""
dynamic var date = NSDate()
override static func primaryKey() -> String? {
return "id"
}
}
// Models composed with Activity
class Nutrition: Object {
dynamic var activity: Activity? = nil
dynamic var quantity = 0
}
class Sport: Object {
dynamic var activity: Activity? = nil
dynamic var quantity = 0
dynamic var duration = 0
}
现在我有一个模型Category,我希望它用来举办活动,不管是Nutrition 还是Sport。
这是我的代码:
class Categorie: Object {
let activities = List<Activitie>()
dynamic var categoryType: String = ""
override static func primaryKey() -> String? {
return "categoryType"
}
}
现在我尝试通过这样做将Nutrition 对象添加到我的List<Activitie>:
let nutrition = Nutrition(value: [ "activity": [ "date": NSDate(), "id": "0" ], "quantity": 12 ])
try! realm.write {
realm.add(nutrition, update: true)
}
它不起作用,因为 List<Activitie> 期望的是 Activity 对象而不是 Nutrition 对象。我哪里错了?
非常感谢您的帮助。
【问题讨论】:
标签: ios swift inheritance realm one-to-many