首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >目标C中writeValue数据作为NSData与Swift中数据的差异

目标C中writeValue数据作为NSData与Swift中数据的差异
EN

Stack Overflow用户
提问于 2019-01-28 12:30:40
回答 2查看 340关注 0票数 0

我正在给一个CoreBluetooth设备写信

代码语言:javascript
运行
复制
- (void)writeValue:(NSData *)data forCharacteristic:(CBCharacteristic *)characteristic type:(CBCharacteristicWriteType)type;

在目标C中

我想把这段代码移到Swift。因此,我在使用

代码语言:javascript
运行
复制
 open func writeValue(_ data: Data, for characteristic: CBCharacteristic, type: CBCharacteristicWriteType)

所发送的所有参数值都是相同的,但数据作为NSData发送时将表示为这样的<000a0302>。在Swift中,数据表示为

4字节-计数:4▿指针: 0x00000002810ce5b0 -▿:10755040688▿字节:4个元素-0:0-1:10-2:3

  • 3:2

然而,我并没有从蓝牙外设中得到同样的结果--这两个例子有什么不同?

EN

回答 2

Stack Overflow用户

发布于 2019-01-28 12:43:50

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

区别在于NSDataData在控制台中的显示方式。

  • NSData由尖括号(<000a0302>)中的十六进制字节表示。
  • Data由字节数(4 bytes)表示。如果希望NSData表示形式在print表达式中添加as NSData
票数 4
EN

Stack Overflow用户

发布于 2019-01-28 16:47:32

它们是完全相同的-我有一些讨厌的包装代码导致了一个错误,现在被压扁了!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54402090

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档