如何 运行 在整个应用程序的生命周期中只获取一次数据?
How to run data only once in whole app's life?
我想在 NSUserdefaults 中设置一些数据,但我只想在开始时设置它。我有一种感觉,这会进入 AppDelegate 的某个地方。
比如我想放一个"isLoggedIn" bool check,但是我需要在运行前设置它等于false,这样它才能在运行时检查它。
NSUserDefaults
(或 Swift 3 中的 UserDefaults
)有一个函数 register(defaults:)
,可让您提供包含 "default defaults" 或起始默认值的字典。这就是你所需要的。我通常在 App 委托的初始化方法中调用 register(defaults:)
,因此它在应用程序启动的早期就被调用,在您的任何实例方法被调用之前。您的应用委托中的初始化方法在 Swift:
中可能如下所示
func initialize() {
let dict: [String: Any] = [
"Key1": "value1",
"Key2": 3,
"isLoggedIn": false]
UserDefaults.standard.register(defaults: dict)
}
我想在 NSUserdefaults 中设置一些数据,但我只想在开始时设置它。我有一种感觉,这会进入 AppDelegate 的某个地方。
比如我想放一个"isLoggedIn" bool check,但是我需要在运行前设置它等于false,这样它才能在运行时检查它。
NSUserDefaults
(或 Swift 3 中的 UserDefaults
)有一个函数 register(defaults:)
,可让您提供包含 "default defaults" 或起始默认值的字典。这就是你所需要的。我通常在 App 委托的初始化方法中调用 register(defaults:)
,因此它在应用程序启动的早期就被调用,在您的任何实例方法被调用之前。您的应用委托中的初始化方法在 Swift:
func initialize() {
let dict: [String: Any] = [
"Key1": "value1",
"Key2": 3,
"isLoggedIn": false]
UserDefaults.standard.register(defaults: dict)
}