2017-03-29 31 views
0

在写作样本代码来了解HomeKit是如何工作的,我发现,我没有得到的当前值,如果我只需使用.value的属性,如:为什么我需要使用HMCharacteristic的readValue来获取当前值?

let theValue = serviceCharacteristic.value 

相反,我会跑标准的Apple HomeKit应用程序似乎与数据库同步一切,再次运行我的应用程序,现在我将获得当前值。

只有使用readValue才能真正获得设备特性的当前值吗?

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

如果不是,我应该使用什么其他方法?

回答

0

是的,数据库保存关于特征的相对静态信息,例如它是可读或可写的,但不包含特征的当前实际值。为此,您需要与附件本身进行通信,并使用readValue(和writeValue)来完成该操作。这些由系统执行并与您的线程异步运行,因此您需要一个完成处理程序来在系统完成时接收结果并返回将结果传送到您的应用程序。

相关问题