isExecuting on HMActionSets总是错误的

时间:2017-06-02 12:43:21

标签: ios swift homekit

到目前为止,我已经实现了一个可以创建HMActionSets的应用程序,它们被添加到HomeKit,它们也可以被执行(值在配件模拟器中相应地改变)。但是,我遇到一个奇怪的问题:每当我打电话

lldb-rpc-server

(我没有回复错误,动作集实际上已被执行)。但是,然后我再回头看看我的HMHome.actionSets数组,并检查

override public func canPerformAction(_ action: Selector, withSender sender: Any?) -> Bool {
    if action == #selector(copy(_:)) || action == #selector(paste(_:)) || action == #selector(selectAll(_:)) || action == #selector(cut(_:))
    {
        return false
    }
    return super.canPerformAction(action, withSender: sender)
}

属性 - >但它总是func executeActionSet(HMActionSet, completionHandler: (Error?) -> Void)

你知道我可能做错了吗?

1 个答案:

答案 0 :(得分:1)

可悲的是,我无法弄清楚为什么这个属性总是错误的。 但是,如果您想知道当前是否正在执行场景,我找到了一种解决方法:

只需遍历HMActionSet的所有HMAction,检查HMAction的targetValue是否与相关特征的当前值相同,并且只有当所有指定的特征和值都相同时,才可以说:HMActionSet XYZ正在执行。显然,官方家庭应用程序也是这样做的。 (在HomeKit的Apple开发者论坛上找到)