RLMException',原因:'试图在写事务之外修改对象 [英] RLMException', reason: 'Attempting to modify object outside of a write transaction
本文介绍了RLMException',原因:'试图在写事务之外修改对象的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我在编译以下代码时遇到以下错误:
I've encountered following error when I've complied following code:
*** 由于未捕获的异常RLMException"而终止应用程序,原因:尝试在写入事务之外修改对象 - 调用首先在 RLMRealm 实例上进行 beginWriteTransaction.'
*** Terminating app due to uncaught exception 'RLMException', reason: 'Attempting to modify object outside of a write transaction - call beginWriteTransaction on an RLMRealm instance first.'
for outlet in brand.outlets! {
let outl = OutletListRealm()
outl.outletId = outlet.id
outl.outletName = outlet.name!
outl.brand = brand.id
try! self.realm.write {
self.realm.add(outl)
}
for override in outlet.override! {
let overRide = OverRideObjectRealm()
overRide.id = override.id
overRide.name = override.name!
overRide.brand = brand.name!
overRide.outlet = outlet.name!
outl.brand = brand.id
try! self.realm.write {
self.realm.add(overRide)
}
}
}
推荐答案
你需要在realm.write
中做所有事情只需按如下方式更新您的代码.
You need to do all thing in realm.write
Just update your code as follows.
参见:https://realm.io/docs/swift/latest/#writes
for outlet in brand.outlets! {
let outl = OutletListRealm()
try! self.realm.write {
outl.outletId = outlet.id
outl.outletName = outlet.name!
outl.brand = brand.id
self.realm.add(outl)
}
for override in outlet.override! {
let overRide = OverRideObjectRealm()
try! self.realm.write {
overRide.id = override.id
overRide.name = override.name!
overRide.brand = brand.name!
overRide.outlet = outlet.name!
self.realm.add(overRide)
}
}
}
这篇关于RLMException',原因:'试图在写事务之外修改对象的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文