Причина REALM: «Попытка изменить объект вне транзакции записи - сначала вызовите beginWriteTransaction для экземпляра RLMRealm». - PullRequest
0 голосов
/ 20 февраля 2019

Я получаю сообщение об ошибке при попытке изменить объект области.

Это простой класс, и на самом деле существует только одна запись.

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», причина: «Попытка изменитьобъект вне транзакции записи - сначала вызовите beginWriteTransaction для экземпляра RLMRealm. '

что я делаю неправильно?Спасибо.

Спасибо.

1 Ответ

0 голосов
/ 20 февраля 2019

user является экземпляром Realm.Любые изменения user должны быть в блоке realm.write.

try! realm.write {
    user.name = "test"
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...