到目前为止,我已经实现了一个应用程序,可以在其中创建HMActionSet,并将它们添加到HomeKit中,并且也可以执行它们(值在Accessory Simulator中会相应更改)。但是,我面临一个奇怪的问题:每当我打电话时
func executeActionSet(HMActionSet, completionHandler: (Error?) -> Void)
(我没有得到任何错误,并且动作集已实际执行)。但是,然后我返回并再次浏览HMHome.actionSets数组,然后检查
isExecuting
属性->但是,它始终是
false
。你知道我可能做错了什么吗?
最佳答案
可悲的是,我不知道为什么这个属性总是假的。
但是,如果您想知道当前是否正在执行场景,我找到了一种解决方法:
只需遍历HMActionSet的所有HMAction,检查HMAction的targetValue是否与关联特征的当前值相同,并且仅当所有指定的特征和值都相同时,您才可以说:HMActionSet XYZ正在执行。显然,官方Home App也是如此。 (在HomeKit的Apple开发人员论坛上找到)