In an iphone application, I'm looking to convert a float to NSData for it to be sent over bluetooth and then converted back again when it's received. I have the bluetooth part working fine, but when I use this to convert to 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)];
I can not convert it back to a float. I've tried a couple of methods but I'm wondering if this is the correct way to encode the float to NSData??
Thanks
Here is how to encode and decode a
float
withNSData
:A couple of things to note here:
1. You have to use
NSMutableData
if you are going to add things to the data object after creating it. The other option is to simply load the data all in one shot:NSData * data = [NSData dataWithBytes:&z length:sizeof(float)];
2. the
getBytes:length:
method is for retrieving bytes from anNSData
object, not for copying bytes into it.