如何仅在我第一次访问 iOS 应用程序时调用 class
How to call a class only the first time i access an iOS app
我想在第一次访问该应用程序时创建数据库。
如您所知,Swift 有一个 AppDelegate.swift class 与@UIApplicationMain,它表示 main() class。
如果我想在第一次访问应用程序时而不是在下次访问它时创建数据库,我应该怎么做?
我可以更改 AppDelegate.swift 吗? (我不知道这是个好方法)
或者使用flag? (我认为每当我访问该应用程序时,该标志将初始化...我应该将标志保存在本地数据库中吗???但那时,将没有数据库...)
此外,我正在使用 Sqlite.swift。
如果您需要我的代码来理解问题,请评论我!
了解应用程序是否已启动的简单解决方案:
let alreadyLaunched = UserDefaults.standard.bool(forKey: "AppLauch")
if !alreadyLaunched {
// setup everything needed
//....
UserDefaults.standard.set(true, forKey: "AppLauch")
UserDefaults.standard.synchronize()
}
你完全正确,在返回之前将其放入AppDelegate
didFinishLaunchingWithOptions
。
注意:此方法不保证您的数据库完全设置(检查您的数据库API相关方法以确定),只是告诉这个之前是否启动过应用程序。
我想在第一次访问该应用程序时创建数据库。
如您所知,Swift 有一个 AppDelegate.swift class 与@UIApplicationMain,它表示 main() class。
如果我想在第一次访问应用程序时而不是在下次访问它时创建数据库,我应该怎么做?
我可以更改 AppDelegate.swift 吗? (我不知道这是个好方法)
或者使用flag? (我认为每当我访问该应用程序时,该标志将初始化...我应该将标志保存在本地数据库中吗???但那时,将没有数据库...)
此外,我正在使用 Sqlite.swift。
如果您需要我的代码来理解问题,请评论我!
了解应用程序是否已启动的简单解决方案:
let alreadyLaunched = UserDefaults.standard.bool(forKey: "AppLauch")
if !alreadyLaunched {
// setup everything needed
//....
UserDefaults.standard.set(true, forKey: "AppLauch")
UserDefaults.standard.synchronize()
}
你完全正确,在返回之前将其放入AppDelegate
didFinishLaunchingWithOptions
。
注意:此方法不保证您的数据库完全设置(检查您的数据库API相关方法以确定),只是告诉这个之前是否启动过应用程序。