gpt4 book ai didi

iphone - 将 float 转换为 NSData 并返回到 Objective-C

转载 作者:太空狗 更新时间:2023-10-30 03:19:59 27 4
gpt4 key购买 nike

在 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 的正确方法??

谢谢

最佳答案

下面是如何使用 NSDatafloat 进行编码和解码:

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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com