在应用程序打开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
}
答案 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
}
希望这会有所帮助