HMActionSets 上的 isExecuting 始终为 false
isExecuting on HMActionSets always false
到目前为止,我已经实现了一个可以创建 HMActionSet 的应用程序,它们被添加到 HomeKit 中,并且它们也可以被执行(配件模拟器中的值相应地改变)。但是,我遇到了一个奇怪的问题:每当我打电话给
func executeActionSet(HMActionSet, completionHandler: (Error?) -> Void)
(返回没有报错,actionset确实执行了)。但是,然后我返回并再次查看我的 HMHome.actionSets 数组,并检查
isExecuting
属性 -> 但它总是 false
。
你知道我做错了什么吗?
遗憾的是,我不明白为什么这个属性总是错误的。
但是,如果您想知道当前是否正在执行某个场景,我找到了一个解决方法:
简单遍历HMActionSet的所有HMAction,检查HMAction的targetValue是否与关联特征的当前值相同,只有所有指定的特征和值都相同,然后你可以说:正在执行 HMActionSet XYZ。显然,官方的 Home App 也是这样做的。 (在 HomeKit 的 Apple 开发者论坛上找到)
到目前为止,我已经实现了一个可以创建 HMActionSet 的应用程序,它们被添加到 HomeKit 中,并且它们也可以被执行(配件模拟器中的值相应地改变)。但是,我遇到了一个奇怪的问题:每当我打电话给
func executeActionSet(HMActionSet, completionHandler: (Error?) -> Void)
(返回没有报错,actionset确实执行了)。但是,然后我返回并再次查看我的 HMHome.actionSets 数组,并检查
isExecuting
属性 -> 但它总是 false
。
你知道我做错了什么吗?
遗憾的是,我不明白为什么这个属性总是错误的。 但是,如果您想知道当前是否正在执行某个场景,我找到了一个解决方法:
简单遍历HMActionSet的所有HMAction,检查HMAction的targetValue是否与关联特征的当前值相同,只有所有指定的特征和值都相同,然后你可以说:正在执行 HMActionSet XYZ。显然,官方的 Home App 也是这样做的。 (在 HomeKit 的 Apple 开发者论坛上找到)