Objective-C:unichar与char

时间:2009-07-07 14:33:31

标签: iphone c objective-c unicode

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

例如,我可以这样做:

-(BOOL)isNewLine:(unichar)c {

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

}

3 个答案:

答案 0 :(得分:24)

是的,unichar在内部unsigned short,因此您可以将其与char进行有意义的比较(如果后者是ASCII,但这适用于'\n')。

答案 1 :(得分:6)

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

答案 2 :(得分:0)

比较unichars时,请考虑使用:

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

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

这是unichars的巨大优势。