Можно только добавлять, удалять или создавать объекты в области в транзакции записи - сначала вызовите beginWriteTransaction для экземпляра RLMRealm.
Вам нужно открыть область, а затем написать.
Узнайте больше о сфере здесь , и этот код должен работать для вас сейчас.
try! realm.write {
realm.add(chatMsgObj)
}
РЕДАКТИРОВАТЬ : из приведенных ниже комментариев у вас возникла другая проблема: при записи по тому же первичному ключу загляните в документацию по области снова и это может быть проблемой конфигурации, однако,
вы можете попытаться удалить приложение из (симулятора / устройства), которое вы тестируете на нем, и снова запустить приложение.
Ивы наткнулись на
Попытка создать объект типа 'ChatMessage' с существующим значением первичного ключа '0'
, поэтому в этом новом сбое у вас есть 2опции.
1 - изменить PrimaryKey
нового объекта, на котором оно написано.
2 - получить объект этого PrimaryKey
и изменить его.
Теперь для извлечения и изменения части взгляните на этот код, у вас должна быть идея.
let realm = try! Realm()
let myChatObject = realm.objects(Dog.self).filter("youPrimaryKey == 1").first
try! realm.write {
myChatObject!.something = newValue
}