2011-02-27 13 views

Respuesta

36

Puede utilizar stringWithFormat:, pasando en un formato de %c para representar un carácter, como este:

char c = 'a'; 
NSString *s = [NSString stringWithFormat:@"%c", c]; 
+0

Impresionante, gracias BoltClock. Soy nuevo en Objective-C y muchas de estas cosas son un poco indescifrables para mí en este momento. ¡Gracias! :-) – Senkwe

+0

@Hovito: si utilizas Xcode, recuerda que siempre está el visor de documentación incorporado :) – BoltClock

+1

stringWithFormat es una exageración, en mi humilde opinión. –

6

se puede hacer una C-secuencia de un personaje como este:

char cs[2] = {c, 0}; //c is the character to convert 
NSString *s = [[NSString alloc] initWithCString:cs encoding: SomeEncoding]; 

Alternativamente, si se sabe que el carácter es un carácter ASCII (es decir, letra latina, número o signo de puntuación), aquí hay otra forma:

unichar uc = (unichar)c; //Just extend to 16 bits 
NSString *s = [NSString stringWithCharacters:&uc length:1]; 

El último fragmento seguramente falla (no se cuelga, pero produce una cadena incorrecta) con caracteres nacionales. Para aquellos, la extensión simple a 16 bits no es una conversión correcta a Unicode. Es por eso que se necesita el parámetro encoding.

También tenga en cuenta que los dos fragmentos anteriores producen una cadena con diferentes requisitos de desasignación. Este último hace una cadena autorrellenada, el primero hace una cadena que necesita una llamada [liberación].