2016-05-18 3 views
-1

Эй, я хочу знать, как преобразовать печатные данные (я печатал с NSLog), например, следующим образом:Как конвертировать печатные NSData в NSData снова?

< 01000405 00000000 00000000 00000000 00000000>

Вернуться к NSData?

Я попытался

[NSString stringWithFormat:@"<01000405 00000000 00000000 00000000 00000000>"] dataUsingEncoding:NSUTF8StringEncoding] 

Но это только что дал мне этот результат:

<3c303130 30303430 32203030 30303030 30302030 30303030 30303020 30303030 30303030 20303030 30303030 303e> 

ответ

0
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); 

здесь: Converting HEX NSString To NSData

Для замены "<", "", «> «используйте этот метод:

NSString * newString = [myString stringByReplacingOccurrencesOfString:@"<" withString:@""]; 
+0

Спасибо, я попробую это и дам вам знать :) –

+0

Флаг как дубликат, не просто скопируйте/вставьте код, если единственное изменение так же тривиально, как удаление символов «<" and ">». – Larme

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