Как полностью удалить Realm database из iOS?

теперь я получаю ошибку Property types for 'value' property do not match. Old type 'float', new type 'double' Как очистить базу данных или переноса успешно?

5 ответов


чтобы полностью удалить файл Realm с диска и начать с нуля, это просто вопрос использования NSFileManager вручную удалить его.

например, чтобы удалить файл Realm по умолчанию:

NSFileManager.defaultManager().removeItemAtURL(Realm.Configuration.defaultConfiguration.fileURL!)

если вы хотите сохранить файл Realm, но полностью очистить его от объектов, вы можете вызвать deleteAll() для этого:

let realm = try! Realm()
try! realm.write {
  realm.deleteAll()
}

обновление: Я чувствую, что забыл упомянуть об этом в моем первоначальном ответе. Если вы решите удалить файл область диск, вы должны сделать это, прежде чем открывать его в любых потоках вашего приложения. После его открытия Realm будет внутренне кэшировать ссылку на него, которая не будет выпущена, даже если файл будет удален.

Если вам абсолютно необходимо открыть файл Realm, чтобы проверить его содержимое перед удалением, вы можете заключить его в autoreleasepool для этого.


ты пробовал

   let realm = try! Realm()
   realm.deleteAllObjects() 

вы также можете попробовать удалить область с устройства, подключив ее к компьютеру, перейдя в Xcode, а затем на устройства, а затем найти текущую область и удалить ее.


в то время как другие комментарии правы, вы должны действительно посмотреть на:https://realm.io/docs/swift/latest/#migrations

Это дает супер четкое объяснение того, как сделать миграцию, и это действительно просто, и гораздо лучше удалить все, если это можно помочь.


вот как это сделать в swift 4.1:

FileManager.default.removeItem(at:Realm.Configuration.defaultConfiguration.fileURL!)  

В дополнение к использованию NSFileManager удалить файл, удалить .lock файл и .management папка также. В противном случае, если вы попытаетесь воссоздать файл realm с тем же именем, он выдаст ошибку, сказав, что не может найти его