2017-03-29 11 views
0

내가 단순히으로 .value 속성을 사용하는 경우 I이 (가) 현재 값을하지 않는 것을 발견, 이해하기 모든 것을 데이터베이스와 동기화하는 것으로 보이는 표준 Apple HomeKit 응용 프로그램을 다시 실행하면 현재 값을 얻을 수 있습니다.왜 HMCharacteristic의 readValue를 사용하여 현재 값을 가져와야합니까? 내가 도망 것, 오히려</p> <pre><code>let theValue = serviceCharacteristic.value </code></pre> <p>: HomeKit 작동 방법을 쓰기 샘플 코드에서

readValue를 사용하여 장치 특성의 현재 값만 진정으로 가져올 수 있습니까?

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

그렇지 않은 경우 어떤 방법을 사용해야합니까?

답변

0

예, 데이터베이스는 특성에 대한 정적 정보 (예 : 읽기 또는 쓰기 가능)를 보유하지만 특성의 현재 실제 값은 보유하지 않습니다. 이를 위해서는 액세서리 자체와 통신해야하며 readValue (및 writeValue)가이를 수행해야합니다. 이들은 시스템에 의해 실행되고 스레드와 비동기 적으로 실행되기 때문에, 시스템이 완료되면 결과를 받아서 앱으로 전달하기 위해 완료 핸들러가 필요합니다.