Вот как кодировать и декодировать float
с помощью NSData
:
кодировка:
NSMutableData * data = [NSMutableData dataWithCapacity:0];
float z = ...;
[data appendBytes:&z length:sizeof(float)];
декодирование:
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
, а не для копирования в него байтов.