我正在从api中检索用户信息,创建一个领域对象然后我想将它保存在领域中。 问题是它不会更新用户。我有一个经理类来处理领域。在这个类中,我创建了我每次需要读取或写入时使用的Realm变量:
let myrealm = try! Realm()
然后在我做的一个函数中:
let rmUser = RMUser(id:1, code:"ewi39", ...) //init
//here, for example, rmUser.code = "ewi39"
try! myrealm.write {
myrealm.add(rmUser, update:true)
}
//here rmUser.code = "" , which was the value of the already stored user.
知道为什么吗? 我在RMUser中有几个方便初始化,我在这里使用的是:
convenience init(id:Int, code:String, ...) {
self.init()
self.id = id
self.code = code
...
}
奇怪(对我而言)是,如果我不调用初始化程序,但我只是“手动”分配变量,它可以正常工作:
let rmUser = RMUser()
rmUser.id = id
rmUser.code = code
//here, for example, rmUser.code = "ewi39"
try myrealm.write {
myrealm.add(rmUser, update:true)
}
//here rmUser.code is "ewi39" as should be