REALM 原因:“尝试在写入事务之外修改对象 - 首先在 RLMRealm 实例上调用 beginWriteTransaction。”

dio*_*nes 3 realm swift

尝试修改领域对象时出现错误。

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

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
        }
    }

}
Run Code Online (Sandbox Code Playgroud)

我调用数据:

var user = User.getInfo()
Run Code Online (Sandbox Code Playgroud)

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

user.name = "test"
Run Code Online (Sandbox Code Playgroud)

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

我究竟做错了什么?谢谢。

谢谢。

小智 5

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

try! realm.write {
    user.name = "test"
}
Run Code Online (Sandbox Code Playgroud)