2016-06-21 17 views
0

Unsere kundenspezifischen Smart-Router ist mir geben NSData AntwortConvert Hex NSData in Objective C int

< 800c01ff 0001ffff ffff29ff>

Hier 800c ist mein deviceId. Wie konvertiert man es in int?

deviceId = 32780;

Wenn ich Befehl an den Router senden Ich konstruierte es mögen,

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

Verwenden Sie 'NSData * deviceIDData = [dieDataResponse subdataWithRange: NSMakeRange (0,2)], int deviceId; [deviceIDData getBytes: & deviceId length: sizeof (int)]; '? – Larme

+1

Warum ist 'NSNummer' überhaupt beteiligt? – Droppy

+0

@Lamre deviceId: 5508224. aber es war 32780 –

Antwort

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

Antwort von Larme Kommentar gemacht.