【问题标题】:REALM reason: 'Attempting to modify object outside of a write transaction - call beginWriteTransaction on an RLMRealm instance first.'REALM 原因:“尝试在写入事务之外修改对象 - 首先在 RLMRealm 实例上调用 beginWriteTransaction。”
【发布时间】:2019-02-20 11:50:15
【问题描述】:

我在尝试修改领域对象时遇到错误。

这是一个简单的类,实际上只有一条记录。

class User: Object{

    @objc dynamic var id = UUID().uuidString
    @objc dynamic var name:String  = ""
    @objc dynamic var email:String = ""
    .....

    static func getInfo() -> User? {
        do {
            let realm = try Realm()
            return realm.objects(User.self).first
        } catch {
            return nil
        }
    }

}

我称数据为:

var user = User.getInfo()

现在当我尝试修改它时,我收到以下错误。

user.name = "test"

*** 由于未捕获的异常“RLMException”而终止应用程序,原因:“尝试在写入事务之外修改对象 - 首先在 RLMRealm 实例上调用 beginWriteTransaction。”

我做错了什么?谢谢。

谢谢。

【问题讨论】:

    标签: swift realm


    【解决方案1】:

    user 是一个 Realm 实例。对 user 的任何修改都需要在 realm.write 块内。

    try! realm.write {
        user.name = "test"
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-05
      • 2021-11-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多