gpt4 book ai didi

core-bluetooth - 响应 peripheralManager :didReceiveWriteRequests? 的正确方法是什么

转载 作者:行者123 更新时间:2023-12-04 06:42:00 25 4
gpt4 key购买 nike

回复peripheralManager:didReceiveWriteRequests:的正确方法是什么? ?

header 文档指出:

“对于此方法的每次调用 respondToRequestWithResult 都应该只调用一次。”

didReceiveWriteRequests使用 NSArray 传入多个写入请求.

如果所有写请求都被成功处理,我们是否只是从列表中任意选择一个请求并将其用作respondToRequestWithResult的参数?自从respondToRequestWithResult方法只需要一个 CBATTRequest参数而不是 CBATTRequest 的列表带有didReceiveWriteRequests的s ?

我期望一个以请求列表作为参数的对称响应方法。

最佳答案

来自 Apple 文档:Here

处理来自连接中心的写入请求也很简单。当一个连接的中心发送一个写入一个或多个特征值的请求时,外围管理器调用它的委托(delegate)对象的 peripheralManager:didReceiveWriteRequests: 方法。这一次,委托(delegate)方法以包含一个或多个 CBATTRequest 对象的数组的形式将请求传递给您,每个对象代表一个写入请求。在确保可以完成写入请求后,您可以写入特征的值,如下所示:

myCharacteristic.value = request.value;

虽然上面的例子没有说明这一点,但是在写入你的特征值时一定要考虑到请求的偏移属性。

正如您响应读取请求一样,每次调用 peripheralManager:didReceiveWriteRequests: 委托(delegate)方法时,只需调用一次 respondToRequest:withResult: 方法。也就是说,respondToRequest:withResult: 方法的第一个参数需要一个 CBATTRequest 对象,即使您可能从 peripheralManager:didReceiveWriteRequests: 委托(delegate)方法收到了一个包含多个对象的数组。您应该传入数组的第一个请求,如下所示:
[myPeripheralManager respondToRequest:[requests objectAtIndex:0]

withResult:CBATTErrorSuccess];

关于core-bluetooth - 响应 peripheralManager :didReceiveWriteRequests? 的正确方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15143453/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com