Ситуация: я разрабатываю приложение, которое управляет аксессуарами 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 для аксессуаров, когда я возвращаюсь из фонового режима на передний план?