2012-04-18 2 views
2

Я получаю NSData с помощью следующего методакак преобразовать NSData в массив символов, содержащий Hexa значения

 - (void)socket:(GCDAsyncSocket *)sock didReadData:(NSData *)data withTag:(long)tag 

сервер посылать данные в формате follwing

    04 01 00 

в качестве значений гекса. так что теперь нужно преобразовать эти данные в массив символов, так что я могу получить доступ к каждой паре отдельно пожалуйста, помогите

+1

Вы уверены, что получили шестнадцатеричные значения? я бы сказал, что вы просто получаете байты. Можете ли вы сбросить данные didReadWith: ** **? –

+0

сервер отправляет данные в вышеуказанном формате, мне нужно его преобразовать – Ali

+0

Да. Но это то, что строка или вы показывали несколько байтов ?! дать четкую информацию. –

ответ

1

Вы можете пойти, как это, если вы хотите сравнить побайтно:

//NSData *test; // assume this is your NSData containing 0x04 0x01 0x00 

    char *ptr = (void *)[test bytes]; // set a pointer to the beginning of your data bytes 
    if(*ptr == 0x04) { 
     NSLog(@"okay,.. got a 0x04"); 
    } 
    ptr++; // go to the next byte 
    if(*ptr == 0x01) { 
     NSLog(@"okay,.. got a 0x01"); 
    } 

надежду, что действительно работает для вас.

+0

вы можете помочь мне преобразовать этот char * ptr в NSString, чтобы я мог показать на какой-либо ярлыке или оповещении. – Ali

+0

Вам нужно разместить свой код ... возможно, в другом вопросе. –

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