У меня есть несколько объектов, которые не определяют первичный ключ (потому что наш сервер обрабатывает первичные ключи и в автономном режиме вы не можете предоставить первичный ключ), поэтому я не могу использовать метод update
если я изменить данные, поэтому я попытался следующие:Область: Удалить и Добавить объект: объект удален или недействителен
func updateTest() {
let myObjects = realm.objects(MyObject.self).filter("id = 1"); // id is NOT the primary key from realm!
var myObject: MyObject!;
if (myObjects.count > 0) {
myObject = myObjects[0];
}
if (myObject != nil) {
try! self.realm.write() {
self.realm.delete(self.myObject);
}
// modify
self.myObject.status = "waiting";
try! self.realm.write() {
self.realm.add(self.myObject); // crash
}
}
}
Но когда я хочу, чтобы добавить объект теперь я получаю:
Terminating app due to uncaught exception: 'RLMException', reason: 'Object has been deleted or invalidated.'
так несколько вопросов здесь:
Есть ли возможность выбрать только один результат?
Есть ли возможность обновить объект, указав имя поля, которое не является первичным ключом?
Как я могу удалить и прочитать объект без получения этой ошибки?
Возможно, имело смысл реализовать фиктивный первичный ключ?
спасибо. – Mulgard