Я создал приложение, которое использует Realm в качестве постоянного хранилища, и время от времени я сталкиваюсь с проблемой доступа к удаленным объектам Realm. Моя база данных состоит из объектов, которые обновляются / удаляются каждые 12 часов. Предположим, объект удаляется при фильтрации массива объектов области. Вот пример кода:
let objects = databaseManager.getObjects()
// Here the sync is prepared and one of the array elements is removed
filteredObjects = objects.filter { ... } // Here I've got a fatal exception
Как правильно решить такую ситуацию? Стоит ли проверять, является ли объект недействительным при фильтрации?
UPDATE
Точнее, это функция из databaseManager. Он возвращает объекты Swift, а не объекты Realm.
func getObjects() -> [Object] {
return database.objects(Object.self).toArray(ofType: Object.self)
}
'Объекты' обновляются каждые 12 часов. Они загружаются из бэкэнда, новые сохраняются, а устаревшие удаляются. Я говорю о ситуации, когда я делаю некоторые операции над коллекцией (map, filter et c.) И механизм syn c начинает работать. Что делать, если объекты, над которыми я работаю, удаляются из области?