应用程序打开5次后显示警报

时间:2017-09-01 19:07:11

标签: ios swift

在应用程序打开5次后弹出警报时遇到一些问题。我正在使用NSUserDefaults和applicationDidFinishLaunching来实现这一目标。但我似乎无法让它发挥作用。继承我的代码:

func applicationDidFinishLaunching(_ application: UIApplication) {
    let currentCount = UserDefaults.standard.integer(forKey: "lanuchCount")
    UserDefaults.standard.set(currentCount + 1, forKey: "lanuchCount")
    UserDefaults.standard.synchronize()

    if currentCount == 3 {
        print("Opened")
    }
}

我知道我的if语句不正确,但这是我对如何跟踪金额和显示信息的唯一猜测。我没有警报工作,因为我想看看我打开三次后是否能在控制台中显示打印消息。

编辑:将我的代码更改为一些回复说的内容。仍然没有运气。

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
    // Override point for customization after application launch.
    let currentCount = UserDefaults.standard.integer(forKey: "launchCount")
    UserDefaults.standard.set(currentCount + 1, forKey: "launchCount")
    UserDefaults.standard.synchronize()
        if (currentCount + 1) == 3 {
            print("opened")
            let alert = UIAlertView()
            alert.title = "Test"
            alert.message = "Test"
            alert.addButton(withTitle: "Okay")
            alert.show()
    }
    return true
}

2 个答案:

答案 0 :(得分:0)

尝试使用didFinishLaunchingWithOptions。 然后,您可以设置第一个viewcontroller的viewDidLoad,以显示您想要的警报。

答案 1 :(得分:0)

你的代码很好,应该可以工作,但是你应该知道一件事。您正在使用保存在UserDefaults上的最后一个状态,换句话说,如果您在UserDefaults值为0时第一次打开应用程序,那么您在if语句中使用该值而不是您添加到UserDefaults的+1并且在重新启动应用程序之后if语句将被触发4次,如果你想在3次之后看到结果,你应该使用类似的东西

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
    // Override point for customization after application launch.

    let currentCount = UserDefaults.standard.integer(forKey: "lanuchCount")
    UserDefaults.standard.set(currentCount + 1, forKey: "lanuchCount")
    UserDefaults.standard.synchronize()

    if (currentCount + 1) == 3 {
        print("Opened")
    }

    return true
}

希望这会有所帮助