我应该满足所有写入特征的CBATTRequest还是仅仅是数组中的第一个?

时间:2014-11-19 15:48:24

标签: objective-c cocoa-touch core-bluetooth cbperipheralmanager

当我收到

- (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;
    }
}

然而,一旦我通过了这个,并且知道我可以完成所有请求,我不清楚我是否应该实际迭代所有请求并写每个人的特征值,然后当我完成时只响应第一个请求,或者我应该只完成第一个请求并成功回应?

0 个答案:

没有答案