Как преобразовать unsigned char в NSString в iOS

Может ли кто-нибудь сказать мне, как преобразовать unsigned char в NSString?

Вот код, который я использую, но по какой-то причине, если я пытаюсь что-либо сделать с помощью NSString, например, установить текст UITextView, это дает мне ошибку. Однако NSLog работает правильно. Спасибо заранее.

- (void)onTagReceived:(unsigned char *)tag
{

NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
NSString *myTag = [NSString stringWithFormat:@"%02x%02x%02x%02x%02x\n",tag[0],tag[1],tag[2],tag[3],tag[4]];

NSLog(@"currentTag: %@",myTag);

[displayTxt setText:myTag];

[pool release];

}

Ответ 1

Если tag является строкой C (с нулевым завершением, то есть), вы можете использовать [NSString stringWithUTF8String:(char *)tag]. Если вы хотите использовать шестнадцатеричные значения, то ваш код с помощью %02x прекрасен.

Ответ 2

@jtbandes: вы правы. Другой способ, которым вы можете это сделать:

NSString *str = [NSString stringWithCString:tag length:strlen(tag)];