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的巨大优势。