作为成员的Realm对象保存后为nil [英] Realm object as member is nil after saving
问题描述
我遇到一个问题,一个Realm对象有另一个Realm对象作为成员,添加到数据库后总是 nil
。
class MedPack:Object {
dynamic var uuid = NSUUID()。UUIDString
dynamic var medicine:Medicine?
方便init(医学:医学){
self.init()
self.medicine = medicine
}
override static func primaryKey() - >串? {
returnuuid
}
}
class Medicine: Object {
var uuid = NSUUID()。UUIDString
var name:String?
override static func primaryKey() - >串? {
returnuuid
}
}
对象
let medPack = MedPack(medicine:med)
添加到数据库
static let sharedInstance = DBHelper b var realmDb:Realm!
private init(){
realmDb = try! Realm()
}
func store(object:Object){
try! self.realmDb.write {
self.realmDb.add(object)
}
}
将此代码与其中一个Realm示例项目进行比较后,看起来只需设置 Object
相反,你可能需要重构你的代码,但确保你显式地添加你的 MedPack
,然后写对象写一个写事务中的Realm。 MedPack
到数据库。
I'm facing an issue where a Realm object has another Realm object as member which is always nil
after adding to the database.
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"
}
}
The reference to the object Medicine
is always nil after adding.
class Medicine: Object {
var uuid = NSUUID().UUIDString
var name: String?
override static func primaryKey() -> String? {
return "uuid"
}
}
Creation of object
let medPack = MedPack(medicine: med)
Adding to database
static let sharedInstance = DBHelper()
var realmDb: Realm!
private init() {
realmDb = try! Realm()
}
func store(object: Object) {
try! self.realmDb.write {
self.realmDb.add(object)
}
}
After comparing this code to one of the Realm sample projects, it would appear that simply setting an Object
as a child of another does not implicitly write it to the database as well.
Instead, you may need to refactor your code slightly, but make sure you explicitly add your Medicine
object to Realm in a write transaction, before you set its relation to MedPack
and then write MedPack
to the database.
这篇关于作为成员的Realm对象保存后为nil的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!