Я пытаюсь отслеживать, когда пользователь находится в сети или в автономном режиме. Я пытаюсь сделать это, обновляя пользовательский объект на сервере синтаксического анализа всякий раз, когда приложение открывается, и всякий раз, когда приложение закрывается, с помощью следующего кода.
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 Application does not run in background
, поэтому я добавил это и установил значение «нет». Однако он все еще не работает.