2009-07-07 15 views
23

Sono un po 'confuso tra un unichar e un char. Posso trattare un unichar simile a quello di char?Objective-C: unichar vs. char

Per esempio, posso fare questo:

-(BOOL)isNewLine:(unichar)c { 

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

} 

risposta

24

Sì, UNICHAR è internamente unsigned short, in modo da poter significato paragono con una char (se quest'ultimo è ASCII, ma che funziona bene per '\n').

6

Fai attenzione a newline che conosci il formato dei tuoi finali di linea, come Unix (e Mac moderno) usa \ n, ma Windows usa \ r \ n e il classico Mac usa \ r.

+7

Grazie. Ho trovato una classe, NSCharacterSet, che ha un metodo statico per produrre NSNewlineCharacterSet che posso confrontare. – LeeMobile

0

Quando si confrontano unichars, considerare invece con:

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

Poi si prenderà tutti i tipi di ritorni a capo e di avere il codice è possibile modificare facilmente per soddisfare diversi set di caratteri (come whitespaceAndNewlineCharacterSet).

Questo è il grande vantaggio di unichars.