Максимальный размер данных при отправке данных через BTLE на iOS

В настоящее время я внедряю приложение для iOS, которое использует CoreBluetooth для передачи данных между двумя устройствами. Например, для отправки данных с центрального на периферийное устройство я использую этот код:

NSData *data = [NSJSONSerialization dataWithJSONObject:dictionary options:NSJSONWritingPrettyPrinted error:nil];
NSLog(@"Writing data of length %d", [data length]);
[peripheral writeValue:data forCharacteristic:characteristic type:CBCharacteristicWriteWithResponse];

Это работает абсолютно нормально, но дело в том, что я прочитал несколько раз, что характеристики могут передавать максимум 20 байтов одновременно. Кроме того, когда я смотрю наПример кода Apple BTLE они реализуют механизм, который разбивает данные на куски по 20 байт. Но приведенный выше код печатает что-то вродеWriting data of length 124 - данные поступают нормально на другое устройство.

Так:Почему это работает вообще? И даже более того, я боюсь, что в какой-то момент это может сломаться, особенно когда в игру вступают устройства, не поддерживающие iOS.

Ответы на вопрос(5)

Ваш ответ на вопрос