2016-06-21 1 views
0

Наш пользовательский смарт-маршрутизатор дает мне NSData ответConvert Hex NSData в целое в Objective C

< 800c01ff 0001ffff ffff29ff>

Здесь 800c мой DeviceId. Как его преобразовать в int?

deviceId = 32780;

Когда я посылаю команду на маршрутизатор я построил это нравится,

Byte mqttData[12]; 

mqttData[0] =[[NSNumber numberWithUnsignedChar:(deviceID >> 8) & 0xFF] intValue]; 
//mqttData[0]=128 or 80 in Hex 

mqttData[1] =[[NSNumber numberWithUnsignedChar:deviceID & 0xFF] intValue]; 
//mqttData[1]=12 or 'C' in Hex 

return [NSData dataWithBytes:mqttData length:sizeof(mqttData)]; 
+1

Использование 'NSData * deviceIDData = [theDataResponse subdataWithRange: NSMakeRange (0,2)], int deviceId; [deviceIDData getBytes: & deviceId length: sizeof (int)]; '? – Larme

+1

Почему «NSNumber» участвует вообще? – Droppy

+0

@Lamre DeviceId: 5508224. но это было 32780 –

ответ

0
int deviceId = CFSwapInt16BigToHost(*(int*)([deviceIDData bytes])) 

Ответ взят из комментария LARME в.

Смежные вопросы