Objective-C: unichar contre char

Je suis un peu confus entre un unichar et un omble. Puis-je traiter les unichars similaires aux chars?

Par exemple, puis-je faire ceci:

-(BOOL)isNewLine:(unichar)c { if(c == '\n') return YES; else return NO; } 

Oui, unichar est un unsigned short interne, vous pouvez donc le comparer de manière significative avec un caractère (si ce dernier est ASCII, mais cela fonctionne bien pour '\n' ).

Vérifiez soigneusement que newline ne connaît pas le format de vos fins de lignes, car Unix (et les Mac modernes) utilisent \ n, mais Windows utilise \ r \ n et les Mac classiques \ \.

Lorsque vous comparez des unichars, utilisez plutôt:

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

Ensuite, vous attraperez tous les types de saut de ligne et aurez du code que vous pourrez facilement modifier pour correspondre à différents jeux de caractères (comme whitespaceAndNewlineCharacterSet).

C’est le gros avantage des Unichars.