RealmSwift: способен выполнять операции CRUD, даже если мы удаляем файл .realm из дискового хранилища в работающем приложении - PullRequest
0 голосов
/ 11 марта 2020

RealmSwift: Возможность выполнения операций CRUD, даже если мы удаляем файл .realm из дискового хранилища в работающем приложении

Ожидаемые результаты: Если файл .realm удаленный в работающем приложении, файл .realm должен быть создан с 0 записями в моделях

Фактические результаты: Если файл .realm удален в работающем приложении, файл .realm не создается и если мы печатаем записи модели, модель области дает результаты и может добавить больше записей в модель.

Шаги для воспроизведения:

  1. Создано " test.realm "файл на диске, используя следующую строку кода: var config = Realm.Configuration() config.fileURL = config.fileURL!.deletingLastPathComponent().appendingPathComponent("test.realm")

  2. Откройте базу данных области с помощью конфигурации области, используя следующую строку кода: realm = try! Realm(configuration: config)

  3. Создана модель собаки: class Dog: Object { @objc dynamic var name = "" @objc dynamic var age = 0 }

  4. Нажмите кнопку, добавив данные в модель собаки. let myDog = Dog() myDog.name = names.randomElement()! //names array myDog.age = Int.random(in: 1 ... 100) try! realm.write { realm.add(myDog) }

  5. Удален файл .realm с использованием строки кода ниже: let file = Realm.Configuration.defaultConfiguration.fileURL! try? FileManager.default.removeItem(at: file)

  6. Теперь выполняем шаг 4 и печатаем записи: let results = realm.objects(Dog.self)

Данные добавляются успешно, даже если файл .realm отсутствует на диске.

Убить и перезапустить приложение. Теперь файл .realm создается снова с нулевыми записями.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...