ios - CoreBluetooth discover pheriperal advertisementData format -


i'm using corebluetooth discover ble device. in

- (void)centralmanager:(cbcentralmanager *)central  diddiscoverperipheral:(cbperipheral *)peripheral      advertisementdata:(nsdictionary *)advertisementdata                   rssi:(nsnumber *)rssi 

i receive advertisementdata dictionary

{     kcbadvdataisconnectable = 1;     kcbadvdatalocalname = "gate_02";     kcbadvdatamanufacturerdata = <00ff0102 0303>; } 

if try read advertisementdata[@"kcbadvdatamanufacturerdata"] class obtain _nsinlinedata. how can convert nsstring or nsdata object ?

nsinlinedata is nsdata. more specifically, (private) subclass of nsdata - common pattern in cocoa, called class cluster.

so can use methods of nsdata on instance of nsinlinedata.

i'm not sure mean "converting nsdata nsstring". value of kcbadvdatamanufacturerdata not nsstring (as first byte 0x00, used terminate string).

if want convert hexadecimal data decimal, there's no need convert nsstring first. can iterate on nsdata byte-by-byte, this:

  for(nsuinteger = 0; < data.length; ++i) {     byte byte = 0;     [data getbytes:&byte range:nsmakerange(i, 1)];     //do byte } 

Comments

Popular posts from this blog

php - failed to open stream: HTTP request failed! HTTP/1.0 400 Bad Request -

java - How to filter a backspace keyboard input -

java - Show Soft Keyboard when EditText Appears -