gpt4 book ai didi

ios - AppDelegate applicationDidEnterBackground 在模拟器上工作但不在设备上工作

转载 作者:行者123 更新时间:2023-11-30 11:17:08 27 4
gpt4 key购买 nike

我试图跟踪用户何时在线或离线。我试图通过每当打开应用程序以及每当使用以下代码关闭应用程序时更新解析服务器中的用户对象来实现此目的。

 func applicationWillEnterForeground(_ application: UIApplication) {

let username : String? = UserDefaults.standard.string(forKey: "username")
if username != nil {
print("online")
let object = PFUser.current()
object!["online"] = "yes"
object?.saveInBackground()

}

}

func applicationDidEnterBackground(_ application: UIApplication) {

let username : String? = UserDefaults.standard.string(forKey: "username")
if username != nil {
print("Offline")
let object = PFUser.current()
object!["online"] = "no"
object?.saveInBackground()

}
}

当我在 Mac 上使用模拟器进行测试时,它似乎工作得很好。然而,当我在我的实际 iPhone 上测试它时,它会在应用程序打开时更新,但在关闭时不会更新。 (打印总是在设备和模拟器上打印,因此该函数被调用)

经过一些研究后,我发现我可能在 info.plist 中需要这个应用程序不在后台运行所以我添加了它并将其设置为否。但它仍然无法正常工作。

最佳答案

为什么不使用另一种应用程序状态方法,例如func applicationDidEnterBackground(_ application: UIApplication) {}

请记住,applicationWillResignActive(:) 的调用早于 applicationDidEnterBackground(:)

关于ios - AppDelegate applicationDidEnterBackground 在模拟器上工作但不在设备上工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51641482/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com