2017-06-02 1 views
1

Bis jetzt habe ich eine Anwendung implementiert, wo ich HMActionSets erstellen kann, und sie werden zu HomeKit hinzugefügt, und sie können auch ausgeführt werden (Die Werte ändern sich entsprechend im Zubehörsimulator). Allerdings bin ich ein seltsames Problem: wenn ichisExecuting auf HMActionSets immer falsch

func executeActionSet(HMActionSet, completionHandler: (Error?) -> Void) 

nennen (ich wieder keinen Fehler, und die ActionSet tatsächlich ausgeführt wurde). Aber dann gehe ich zurück und meine HMHome.actionSets Array wieder durchsehen und prüfen Sie den

isExecuting 

Attribut -> Aber dann ist es immer false.

Haben Sie eine Idee, was ich falsch machen könnte?

Antwort

0

Leider konnte ich nicht herausfinden, warum dieses Attribut immer falsch ist. Ich habe jedoch eine Problemumgehung gefunden, wenn Sie wissen möchten, ob eine Szene gerade ausgeführt wird oder nicht:

Gehen Sie einfach durch alle HMActions des HMActionSet, überprüfen Sie, ob der targetValue der HMAction identisch ist der aktuelle Wert des zugehörigen Merkmals, und nur wenn alle angegebenen Merkmale und Werte gleich sind, dann können Sie sagen: HMActionSet XYZ wird ausgeführt. Offenbar macht das auch die offizielle Home App. (Gefunden im Apple Developer Forum für HomeKit)