Ситуация: я занимаюсь разработкой приложения, которое управляет аксессуарами HomeKit.Например, я делаю это:
- Аксессуар включен, и я вижу его через приложение.Также в режиме переднего плана
HMAccessoryDelegate
метод:
func accessoryDidUpdateReachability(HMAccessory)
работает нормально, и я могу обрабатывать состояние моего аксессуара.
Я переключаю приложение в фоновый режим.
Я отключаю аксессуар (я имею в виду полное отключение питания), поэтому он должен быть недоступен.
Я переключаю приложение в режим переднего плана, но аксессуар все еще доступен.метод func accessoryDidUpdateReachability(HMAccessory)
- не вызывается.значение accessory.isReachable
не обновляется.
Пример кода, когда я выхожу на передний план:
func applicationDidBecomeActive(_ application: UIApplication) {
if let home = HomeStore.sharedStore.home {
for accessory in home.accessories {
print(accessory.isReachable) //not updated
for service in accessory.services {
for characteristic in service.characteristics {
characteristic.readValue { (error) in //updated
if error == nil {
let notification = Notification(name: Notification.Name(rawValue: "UpdatedCharacteristic"))
NotificationCenter.default.post(notification)
}
}
}
}
}
}
}
Вопрос: как обновить isReachable значения аксессуаров, когда я прихожувернуться из фонового режима на передний план?