RealmSwift: Возможность выполнения операций CRUD, даже если мы удаляем файл .realm из дискового хранилища в работающем приложении
Ожидаемые результаты: Если файл .realm удаленный в работающем приложении, файл .realm должен быть создан с 0 записями в моделях
Фактические результаты: Если файл .realm удален в работающем приложении, файл .realm не создается и если мы печатаем записи модели, модель области дает результаты и может добавить больше записей в модель.
Шаги для воспроизведения:
Создано " test.realm "файл на диске, используя следующую строку кода: var config = Realm.Configuration()
config.fileURL = config.fileURL!.deletingLastPathComponent().appendingPathComponent("test.realm")
Откройте базу данных области с помощью конфигурации области, используя следующую строку кода: realm = try! Realm(configuration: config)
Создана модель собаки: class Dog: Object {
@objc dynamic var name = ""
@objc dynamic var age = 0
}
Нажмите кнопку, добавив данные в модель собаки. let myDog = Dog()
myDog.name = names.randomElement()! //names array
myDog.age = Int.random(in: 1 ... 100)
try! realm.write {
realm.add(myDog)
}
Удален файл .realm с использованием строки кода ниже: let file = Realm.Configuration.defaultConfiguration.fileURL!
try? FileManager.default.removeItem(at: file)
Теперь выполняем шаг 4 и печатаем записи: let results = realm.objects(Dog.self)
Данные добавляются успешно, даже если файл .realm отсутствует на диске.
Убить и перезапустить приложение. Теперь файл .realm создается снова с нулевыми записями.