ing*_*.am 13 iphone objective-c
在iphone应用程序中,我希望将浮动转换为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)];
Run Code Online (Sandbox Code Playgroud)
我无法将其转换回浮动.我尝试了几种方法,但我想知道这是否是将float编码为NSData的正确方法?
谢谢
e.J*_*mes 28
下面是如何编码和解码float具有NSData:
编码方式:
NSMutableData * data = [NSMutableData dataWithCapacity:0];
float z = ...;
[data appendBytes:&z length:sizeof(float)];
Run Code Online (Sandbox Code Playgroud)
解码:
NSData * data = ...; // loaded from bluetooth
float z;
[data getBytes:&z length:sizeof(float)];
Run Code Online (Sandbox Code Playgroud)
这里有几点需要注意:
1.你必须使用NSMutableData,如果你要创建后的东西添加到数据对象.另一种选择是简单地一次性加载数据:
NSData * data = [NSData dataWithBytes:&z length:sizeof(float)];
2.该getBytes:length:方法用于从对象中检索字节NSData,而不是用于将字节复制到其中.
| 归档时间: |
|
| 查看次数: |
9755 次 |
| 最近记录: |