gpt4 book ai didi

swift - HomeKit AccessoriesDidUpdateServices 未调用

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

在下面的快速而肮脏的测试应用程序中,我尝试使用accessoryDidUpdateServices()从Hue运动检测器配件接收光级更新。然而,委托(delegate)函数永远不会被调用。我在安装了 iOS 12.1.4 的 iPhone 上运行它。

谁能解释一下我做错了什么,以及我需要做什么才能正确处理 HMService 更新?

import HomeKit

public class ViewController: UIViewController, HMHomeManagerDelegate, HMAccessoryDelegate {

var manager: HMHomeManager!

public override func viewDidLoad() {
super.viewDidLoad()
manager = HMHomeManager()
manager.delegate = self
}

public func homeManagerDidUpdateHomes(_ manager: HMHomeManager) {
let service = manager.primaryHome!.servicesWithTypes([HMServiceTypeLightSensor])!.first!
service.accessory!.delegate = self
let characteristic = service.characteristics.filter({ $0.characteristicType == HMCharacteristicTypeCurrentLightLevel }).first!

Timer.scheduledTimer(withTimeInterval: 1, repeats: true) { (timer) in
print("Light level: \(characteristic.value!)")
}
}

public func accessoryDidUpdateServices(_ accessory: HMAccessory) {
print("Service updated: \(accessory.name)")
}
}

最佳答案

我认为您在 viewDidLoad 中缺少 addHomes(manager.homes) 并且您需要确保创建一个新的 home 将其添加到,然后您可以添加配件并添加到家中。

我强烈推荐 RayWenderlich 网站上的这个 HomeKit 教程:https://www.raywenderlich.com/5313-homekit-tutorial-getting-started

关于swift - HomeKit AccessoriesDidUpdateServices 未调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54912403/

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