当我收到一个
- (void)peripheralManager:(CBPeripheralManager *)peripheral didReceiveWriteRequests:(NSArray *)requests
目前尚不清楚我是否应该填写所有请求但只成功响应第一个请求,或者我是否应该只完成第一个写入请求并成功响应第一个请求。
当我收到委托方法时,我首先遵循 Apple 的说明
像对待单个请求一样对待多个请求 - 如果无法满足任何单个请求,则不应满足其中任何一个请求。相反,请立即调用 respondToRequest:withResult: 方法并提供指示失败原因的结果。
通过做
// TODO: doesn't yet take into account offset (request.offset > characteristic.value.length)
for (CBATTRequest *r in requests) {
if ([validIds indexOfObject:[r.characteristic.UUID UUIDString]] == NSNotFound) {
NSLog(@"Cannot fulfill write request: %@", r);
[self.manager respondToRequest:requests[0] withResult:CBATTErrorWriteNotPermitted];
return;
}
}
但是,一旦我通过了这个,并且知道我可以满足所有请求,就不清楚我是否应该真正遍历所有请求并为每个请求写入特征值,然后当我'我只响应第一个请求,或者我是否应该满足第一个请求并成功响应?