警报每次都会打开,而不仅仅是第一次



我希望我的警报仅在应用程序首次在新设备上启动时打开,但当前每次在多任务处理中关闭应用程序并再次打开时,它都会打开。我已经附上了我的代码,如果有人能够提供帮助,请?

    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")
        }
    }

您的密钥中有拼写错误...在编写它时,您正在使用键launchedBefore但在阅读它时,您使用的是launcedBefore

这就是我讨厌使用UserDefaults的原因。有时你会打错别字,但你无法分辨它在哪里发生。

使用 UserDefaults

的最佳方法是将所有键创建为常量,因此访问 UserDefaults 的两行看起来更简洁,如下所示:

let launchedBefore = UserDefaults.standard.bool(forKey: kLaunchedBeforeKey)

UserDefaults.standard.set(true, forKey: kLaunchedBeforeKey)

这样,编译器会在您输入错误时通知您。

相关内容

  • 没有找到相关文章

最新更新