在打开应用程序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
}发布于 2017-09-02 05:13:07
请尝试使用didFinishLaunchingWithOptions。然后,您可以设置第一个视图控制器的viewDidLoad来显示您想要的警报。
发布于 2017-09-02 05:18:19
你的代码是好的,它应该是工作的,但是有一件事你应该知道。您使用的是保存在UserDefaults上的最后一个状态,换句话说,如果您在UserDefaults值为0时首次打开应用程序,则在if语句中使用该值,而不是在添加到UserDefaults中的+1语句中使用该值,并且在应用程序重新启动4次后,if语句将被触发,如果您希望在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
}希望这能有所帮助
https://stackoverflow.com/questions/46006570
复制相似问题