Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Converting HEX NSString To NSData

I'm trying to convert a Hex NSString to NSData (I'm using the below attached code). The following is the output:

<00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000> 

which looks totally irrelevant to me. Any idea/ suggestions on where its going wrong?

NSString *strData = @"72ff63cea198b3edba8f7e0c23acc345050187a0cde5a9872cbab091ab73e553";  NSLog(@"string Data length is %d",[strData length]);  NSMutableData *commandToSend= [[NSMutableData alloc] init]; unsigned char whole_byte; char byte_chars[2]; int i; for (i=0; i < [strData length]/2; i++) {      byte_chars[0] = [strData characterAtIndex:i*2];     byte_chars[1] = [strData characterAtIndex:i*2+1];     whole_byte = strtol(byte_chars, NULL, [strData length]);     [commandToSend appendBytes:&whole_byte length:1];  } NSLog(@"%@", commandToSend);     
like image 491
Pranav Jaiswal Avatar asked Sep 06 '11 09:09

Pranav Jaiswal


1 Answers

NSString *command = @"72ff63cea198b3edba8f7e0c23acc345050187a0cde5a9872cbab091ab73e553";  command = [command stringByReplacingOccurrencesOfString:@" " withString:@""]; NSMutableData *commandToSend= [[NSMutableData alloc] init]; unsigned char whole_byte; char byte_chars[3] = {'\0','\0','\0'}; int i; for (i=0; i < [command length]/2; i++) {     byte_chars[0] = [command characterAtIndex:i*2];     byte_chars[1] = [command characterAtIndex:i*2+1];     whole_byte = strtol(byte_chars, NULL, 16);     [commandToSend appendBytes:&whole_byte length:1];  } NSLog(@"%@", commandToSend); 
like image 126
Nikunj Jadav Avatar answered Sep 22 '22 00:09

Nikunj Jadav