Разница между данными writeValue как NSData в Objective C и данными в Swift - PullRequest
0 голосов
/ 28 января 2019

Я пишу на устройство CoreBluetooth, используя

- (void)writeValue:(NSData *)data forCharacteristic:(CBCharacteristic *)characteristic type:(CBCharacteristicWriteType)type;

в цели C

Я хотел бы перенести этот код в Swift.Поэтому я пишу, используя

 open func writeValue(_ data: Data, for characteristic: CBCharacteristic, type: CBCharacteristicWriteType)

Все отправляемые значения параметров одинаковы, за исключением того, что данные при отправке, так как NSData будут представлены как <000a0302> .В Swift данные представлены как

▿ 4 байта - количество: 4 ▿ указатель: 0x00000002810ce5b0 - pointerValue: 10755040688 tes байт: 4 элемента - 0: 0 - 1: 10 - 2: 3

  • 3: 2

Однако я не получаю тот же результат от периферийного устройства Bluetooth - в чем разница между этими двумя примерами?

Ответы [ 2 ]

0 голосов
/ 28 января 2019

Они точно такие же - у меня был какой-то неприятный код-обертка, вызывающий ошибку, которая теперь исправлена!

0 голосов
/ 28 января 2019

Практически нет разницы.Data неявно соединяется с NSData и наоборот при необходимости.

Разница в том, как NSData и Data отображаются на консоли.

  • NSData представлен шестнадцатеричными байтами в угловых скобках (<000a0302>).
  • Data представлен количеством байтов (4 bytes).Если вам нужно представление NSData, добавьте as NSData в выражение print
...