Objective-C:unichar与char

我在unichar和char之间有点困惑。 我可以将unichar与char相似吗?

例如,我可以这样做:

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

是的,unichar是内部unsigned short ,所以你可以有意义地将它与char进行比较(如果后者是ASCII,但是对于'\n'工作正常)。

小心检查你知道行结尾格式的换行符,因为Unix(和现代Mac)使用\ n,但Windows使用\ r \ n而经典Mac使用\ r \ n。

比较unichars时,请考虑使用:

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

然后,您将捕获所有类型的换行符,并且可以轻松修改代码以匹配不同的字符集(例如whitespaceAndNewlineCharacterSet)。

这是unichars的巨大优势。