2

私が受け取ったとき

- (void)peripheralManager:(CBPeripheralManager *)peripheral didReceiveWriteRequests:(NSArray *)requests

すべてのリクエストを満たし、最初のリクエストにのみ成功して応答する必要があるのか​​ 、それとも最初の書き込みリクエストのみを実行して最初のリクエストに成功して応答する必要があるのか​​ は不明です。

デリゲートメソッドを受け取ったら、最初にAppleのメモに従います

複数のリクエストを 1 つのリクエストと同様に扱います。個々のリクエストを満たすことができない場合は、それらのいずれも満たすべきではありません。代わりに、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;
    }
}

しかし、一度これを通過し、すべての要求を満たすことができるとわかった場合、すべての要求を実際に反復処理し、それぞれの特性の値を書き込んで、いつ私が''最初のリクエストに応答するだけで完了ですか、それとも最初のリクエストを実行して成功を返す必要がありますか?

4

0 に答える 0