首页 > 解决方案 > 在 Objective C 中将 writeValue 数据作为 NSData 与 Swift 中的数据之间的区别

问题描述

我正在使用 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 ▿ 字节:4 个元素 - 0 : 0 - 1 : 10 - 2 : 3

  • 3 : 2

但是,我没有从蓝牙外围设备返回相同的结果 - 这两个示例有什么区别?

标签: objective-cswiftbluetooth-lowenergy

解决方案


实际上没有区别。Data如有必要,隐式桥接,NSData反之亦然。

不同之处在于控制台的显示方式NSData和显示方式。Data

  • NSData由尖括号 ( <000a0302>) 中的十六进制字节表示。
  • Data由字节数 ( 4 bytes) 表示。如果您想要表示NSData添加表达式as NSDataprint

推荐阅读