我正在实现应用恢复功能。
但是我发现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
}
到目前为止,它工作正常。 有更好的方法吗?