方便init后,RealmSwift保存

时间:2018-04-11 10:26:18

标签: swift realm realm-mobile-platform savechanges

我正在从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

0 个答案:

没有答案