2009-07-07 11 views
23

Estoy un poco confundido entre un unichar y un char. ¿Puedo tratar el Unichar de manera similar a la de Char?Objetivo-C: unichar vs. char

Por ejemplo, puedo hacer esto:

-(BOOL)isNewLine:(unichar)c { 

if(c == '\n') 
    return YES; 
else 
    return NO; 

} 

Respuesta

24

Sí, unichar es internamente unsigned short, por lo que puedo significativa comparo con un char (si el último es ASCII, pero que funciona bien para '\n').

6

Tenga cuidado al comprobar si newline sabe el formato de sus terminaciones de línea, ya que Unix (y la Mac moderna) usan \ n, pero Windows usa \ r \ n y los clásicos Mac usan \ r.

+7

Gracias. Encontré una clase, NSCharacterSet, que tiene un método estático para producir NSNewlineCharacterSet con el que puedo comparar. – LeeMobile

0

Al comparar unichars, considere en su lugar usando:

if ([[NSCharacterSet newlineCharacterSet] characterIsMember:unicharCharacter]) 
{ 
    //any type of newline 
} 
else 
{ 
    //etc 
} 

A continuación, se captura todo tipo de saltos de línea y tener el código se puede modificar fácilmente para que coincida con diferentes juegos de caracteres (como whitespaceAndNewlineCharacterSet).

Este es el gran beneficio con unichars.