我有一个从api检索数据的服务,它返回我映射的json,然后填充到Realm,最后将其显示给视图。
我有办法让用户强制刷新数据检索,这意味着我还需要更新我的Realm数据。这在第一次调用方法时工作正常。但是,如果我再次尝试这样做,它会在每次出现此异常时崩溃。
*** Terminating app due to uncaught exception 'RLMException', reason: 'Can only add, remove, or create objects in a Realm in a write transaction - call beginWriteTransaction on an RLMRealm instance first.'
这就是我的功能:
private func writeCollection(someKey: String?) {
let realm = try! Realm()
try! realm.write {
realm.add(someObject[someKey!]!, update: true)
}
}
答案 0 :(得分:0)
这个错误发生在最初想到的不同功能中。我拿着这样的字典[someKey:someObject]并使用这个字典作为参考来写。
问题是这是在尝试之外! realm.write
// removed this reference
// var dictionary = [String:SomeObject]()
realm.write {
let someObject = SomeObject()
someObject.id = someKey
realm.add(someObject, update: true)
}