2011-06-26 10 views
10

Czy ktoś może mi powiedzieć, jak przekonwertować znak unsigned na NSString?Jak przekonwertować znak niepodpisany na NSString w iOS

Oto kod, którego używam, ale z jakiegoś powodu, jeśli próbuję zrobić cokolwiek z NSStringiem, jak ustawić tekst UITextView, daje mi to błąd. Jednak NSLog działa poprawnie. Z góry dziękuję.

- (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

Jakiego błędu dostałeś? – jtbandes

Odpowiedz

19

Jeśli tag jest ciągiem C (zakończony zerem, że jest), wówczas można użyć [NSString stringWithUTF8String:(char *)tag]. Jeśli chcesz mieć wartości szesnastkowe, twój kod przy użyciu %02x jest w porządku.

+0

+1 za przypomnienie o zerowym zakończeniu :) – JakeP

2

@jtbandes: masz rację. W inny sposób możesz to zrobić:

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

Ta metoda została uznana za przestarzałą i nie należy jej używać. Więcej informacji na temat opcji [odwołanie do klasy NSString] (http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Cloundation/Classes/NSString_Class/Reference/NSString.html). – jtbandes

+2

moje złe !! dzięki za przypomnienie :) – Manoj

Powiązane problemy