Objective-C: unichar vs. char Objective-C: unichar vs. char objective-c objective-c

Objective-C: unichar vs. char


Yes, unichar is internally unsigned short, so you can meaningfully compare it with a char (if the latter is ASCII, but that works fine for '\n').


Be careful checking for newline that you know the format of your line endings, as Unix (and modern Mac) use \n, but Windows uses \r\n and classic Mac uses \r.


When comparing unichars, consider instead using:

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

Then you will catch all types of newlines and have code you can easily modify to match different character sets (like whitespaceAndNewlineCharacterSet).

This is the big upside with unichars.