我遇到一个问题,即Realm对象有另一个Realm对象作为成员,在添加到数据库后总是nil
。
class MedPack: Object {
dynamic var uuid = NSUUID().UUIDString
dynamic var medicine: Medicine?
convenience init(medicine: Medicine) {
self.init()
self.medicine = medicine
}
override static func primaryKey() -> String? {
return "uuid"
}
}
添加后,对象Medicine
的引用总是为零。
class Medicine: Object {
var uuid = NSUUID().UUIDString
var name: String?
override static func primaryKey() -> String? {
return "uuid"
}
}
创建对象
let medPack = MedPack(medicine: med)
添加到数据库
static let sharedInstance = DBHelper()
var realmDb: Realm!
private init() {
realmDb = try! Realm()
}
func store(object: Object) {
try! self.realmDb.write {
self.realmDb.add(object)
}
}
答案 0 :(得分:3)
将此代码与其中一个Realm示例项目进行比较后,看起来简单地将Object
设置为另一个的子项并不会将其隐式写入数据库。
相反,您可能需要稍微重构代码,但在将其设置为Medicine
然后编写{{{}}}之前,请确保在写入事务中将MedPack
对象显式添加到Realm中。 1}}到数据库。