[英]UserDefaults inital value for userDidSetUp in Swift
導航 rootViewController 取決於用戶設置,因為我曾嘗試檢查用戶是否在主屏幕啟動之前完成了所有入職表單。 我的問題是如何在我的導航中將初始值設置為 UserDefaults。 這總是打印“假”
extension UserDefaults {
var didUserSetUp: Bool? {
get {
///// Register the app default:
/// Initialize value from UserDefaults returns false
UserDefaults.standard.register(defaults: ["didUserSetUp" : false])
return UserDefaults.standard.bool(forKey: "didUserSetUp")
}
set {
/// Set value to UserDefaults
UserDefaults.standard.set(newValue, forKey: "didUserSetUp")
}
}
}
方式是在代碼中設置: UserDefaults.standard.didUserSetUp = false if UserDefaults.standard.didUserSetUp { }
您需要展示如何嘗試使用您創建的屬性的示例代碼,但我嘗試了您在此處顯示的內容,並且能夠使其按預期工作。 這是我所做的:
extension UserDefaults {
var didCompleteOnboarding: Bool? {
get {
UserDefaults.standard.register(defaults: ["didCompleteOnboarding": false])
return UserDefaults.standard.bool(forKey: "didCompleteOnboarding")
}
set {
UserDefaults.standard.set(newValue, forKey: "didCompleteOnboarding")
}
}
}
然后在根視圖控制器中:
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
UserDefaults.standard.didCompleteOnboarding = true
print(UserDefaults.standard.didCompleteOnboarding ?? false)
}
}
在控制台中打印true
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.