我希望我的警报仅在第一次在新设备上启动应用时打开,但每次应用程序在多任务处理时关闭并再次打开时,它都会打开。如果有人能帮忙,我附上了我的代码吗?
override func viewDidAppear(_ animated: Bool) {
// alert first time app is opened
// making of alert
let alert = UIAlertController(title: "Navigation", message: "Tap Right Hand Side of Screen For Next Quote, Left Hand Side To Go Back", preferredStyle: UIAlertControllerStyle.alert)
//add ok button
alert.addAction(UIAlertAction(title: "Dismiss", style: UIAlertActionStyle.default, handler: nil))
// detect if first launch
let launchedBefore = UserDefaults.standard.bool(forKey: "launcedBefore")
if launchedBefore {
}
else {
self.present(alert, animated: true, completion: nil)
UserDefaults.standard.set(true, forKey: "launchedBefore")
}
}
答案 0 :(得分:0)
您的密钥中有拼写错误...在撰写时您使用的是密钥launchedBefore
,但在阅读时您使用的是launcedBefore
答案 1 :(得分:0)
这就是我讨厌使用UserDefaults的原因。有时候你会犯错误而你无法分辨它发生在哪里。
使用UserDefaults的最佳方法是将所有键创建为常量,因此访问UserDefaults的两行看起来更清晰:
let launchedBefore = UserDefaults.standard.bool(forKey: kLaunchedBeforeKey)
和
UserDefaults.standard.set(true, forKey: kLaunchedBeforeKey)
这样编译器会在你输入拼写错误时告诉你。