Я следую документации Realm по миграции и связыванию области с приложением.
Я использую следующий код, чтобы скопировать связанный Realm в Realm по умолчанию. который хорошо работает.
let initialURL = NSBundle.mainBundle().URLForResource("bootstrap_v001", withExtension: "realm")!
let defaultURL = Realm.Configuration.defaultConfiguration.fileURL!
if Realm.Configuration.defaultConfiguration.schemaVersion == 0 {
do {
try NSFileManager.defaultManager().removeItemAtURL(defaultURL)
try NSFileManager.defaultManager().copyItemAtURL(initialURL, toURL: defaultURL)
} catch {
// Handle error here
print("realm delete copy error!!")
}
}
Все это работает нормально, и я вижу правильный файл Realm, в котором есть данные. Однако, если я использую realm = try! Realm(), результаты, которые он возвращает, всегда пусты.
Следует отметить, что у меня есть следующее объявление в верхней части AppDelegate.swift.
import UIKit
import RealmSwift
let uiRealm = try! Realm()
Я не уверен, что это первоначальное глобальное объявление uiRealm вызывает проблему. Я также пытался объявить локальные версии, но это, похоже, не исправляет.
Следует отметить, что если я повторно запускаю приложение, когда файл Realm уже на месте, все в порядке.