作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
在 iphone 应用程序中,我希望将 float 转换为 NSData,以便通过蓝牙发送它,然后在接收到它时再次转换回来。我的蓝牙部分工作正常,但是当我使用它转换为 NSData 时:
NSData *data = [[NSData alloc]init];
float z = 9.8574; // Get the float value, 9.8574 is just an example
[data getBytes:&z length:sizeof(float)];
我无法将它转换回 float 。我尝试了几种方法,但我想知道这是否是将 float 编码为 NSData 的正确方法??
谢谢
最佳答案
下面是如何使用 NSData
对 float
进行编码和解码:
encoding:
NSMutableData * data = [NSMutableData dataWithCapacity:0];
float z = ...;
[data appendBytes:&z length:sizeof(float)];
decoding:
NSData * data = ...; // loaded from bluetooth
float z;
[data getBytes:&z length:sizeof(float)];
这里有几点需要注意:
1. 如果您要在创建数据对象后向其添加内容,则必须使用 NSMutableData
。另一种选择是一次性加载所有数据:
NSData * data = [NSData dataWithBytes:&z length:sizeof(float)];
2. getBytes:length:
方法用于从 NSData
对象检索字节,而不是用于将字节复制到其中。
关于iphone - 将 float 转换为 NSData 并返回到 Objective-C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2281607/
到目前为止,我已经生成了以下代码来尝试将相关数据整合在一起。 但是,使用“+ 7”函数会产生以下问题。 Registration date = '2018-01-01' 它正在推迟 2018-04-0
我已经成功地将我的自定义购物车发布到 PayPal——它处理订单非常漂亮,当收到付款时,它会将数据发回我在配置中指定的 URL。代码基于此处找到的库:http://www.phpfour.com/bl
我是一名优秀的程序员,十分优秀!