2017-03-29 32 views
0

在寫作樣本代碼來了解HomeKit是如何工作的,我發現,我沒有得到的當前值,如果我只需使用.value的屬性,如:爲什麼我需要使用HMCharacteristic的readValue來獲取當前值?

let theValue = serviceCharacteristic.value 

相反,我會跑標準的Apple HomeKit應用程序似乎與數據庫同步一切,再次運行我的應用程序,現在我將獲得當前值。

只有使用readValue才能真正獲得設備特性的當前值嗎?

func readValue(completionHandler completion: @escaping (Error?) -> Void) 

如果不是,我應該使用什麼其他方法?

回答

0

是的,數據庫保存關於特徵的相對靜態信息,例如它是可讀或可寫的,但不包含特徵的當前實際值。爲此,您需要與附件本身進行通信,並使用readValue(和writeValue)來完成該操作。這些由系統執行並與您的線程異步運行,因此您需要一個完成處理程序來在系統完成時接收結果並返回將結果傳送到您的應用程序。

相關問題