2011-06-26 28 views
10

¿Alguien puede decirme cómo convertir un char sin signo en un NSString?Cómo convertir char sin signo a NSString en iOS

Aquí está el código que estoy utilizando, pero por alguna razón si trato de hacer nada con el NSString, como establecer un texto UITextView, me da un error. Sin embargo, el NSLog funciona correctamente. Gracias por adelantado.

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

¿Qué error obtienes? – jtbandes

Respuesta

19

Si tag es una cadena C (terminada en nulo, que es), entonces se puede utilizar [NSString stringWithUTF8String:(char *)tag]. Si desea los valores hexadecimales, su código usando %02x está bien.

+0

+1 para recordarnos la terminación nula :) – JakeP

2

@jtbandes: estás en lo correcto. La otra forma de hacerlo es:

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

Este método ha quedado obsoleto y no debe utilizarse. Consulte la [Referencia de la clase NSString] (http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSString_Class/Reference/NSString.html) para conocer otras opciones. – jtbandes

+2

mi mal !! gracias por recordarme :) – Manoj