Я реализую функции восстановления приложения.
Но я обнаружил, что viewDidLoad
вызывается до того, как didFinishLaunchingWithOptions
вызывается.
И я должен прочитать некоторые данные из базы данных здесь.
Так что всегда выдает исключение на try! Realm()
.
Во всяком случае, вот как я делаю это сейчас.
var realmConfigured = false
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
configureRealm()
}
func application(_ application: UIApplication, shouldRestoreApplicationState coder: NSCoder) -> Bool {
print("restoring")
configureRealm()
return true
}
func configureRealm(){
guard !realmConfigured else { return }
realmConfigured = true
let config = Realm.Configuration(...)
Realm.Configuration.defaultConfiguration = config
}
И пока все отлично работает.
Есть ли лучший способ сделать это?