Ответ 1
Вот как кодировать и декодировать 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
, а не для копирования в него байтов.