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

时间:2019-02-20 03:37:38

标签: swift realm

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

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

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。”

我在做什么错?谢谢。

谢谢。

1 个答案:

答案 0 :(得分:1)

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

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