首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么我需要使用HMCharacteristic的readValue来获得当前值?

为什么我需要使用HMCharacteristic的readValue来获得当前值?
EN

Stack Overflow用户
提问于 2017-03-29 20:08:54
回答 2查看 363关注 0票数 3

在编写示例代码以了解HomeKit如何工作时,我发现如果我只使用.value属性(如:

代码语言:javascript
复制
let theValue = serviceCharacteristic.value

相反,我会运行标准的Apple HomeKit应用程序,它似乎将所有内容同步到数据库,再次运行我的应用程序,现在我将得到当前的值。

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

代码语言:javascript
复制
func readValue(completionHandler completion: @escaping (Error?) -> Void)

如果没有,我还应该用什么方法呢?

EN

回答 2

Stack Overflow用户

发布于 2017-04-27 22:37:18

是的,数据库保存有关特征的相对静态信息,例如它是可读的还是可写的,但是不保存特征的当前实际值。为此,您需要与附件本身进行通信,而readValue (和writeValue)实现了这一点。这些由系统执行,并异步运行到线程,因此您需要一个完成处理程序来接收系统完成后的结果,并返回到您的应用程序。

票数 1
EN

Stack Overflow用户

发布于 2021-04-08 14:53:48

是的,您必须使用readValue来与设备通信,并让它返回当前值。当您使用writeValue时,它应该返回请求是否成功。所以你不需要在改变后再读一遍。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43103188

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档