Iphone 目标C:unichar vs.char

Iphone 目标C:unichar vs.char,iphone,c,objective-c,unicode,Iphone,C,Objective C,Unicode,我对unichar和char有点困惑。我能把unichar的和char的相似吗 例如,我可以这样做: -(BOOL)isNewLine:(unichar)c { if(c == '\n') return YES; else return NO; } 是的,unichar在内部是无符号的短字符,因此您可以有意义地将其与字符进行比较(如果后者是ASCII,但这对'\n'很好)。请仔细检查新行,确保您知道行尾的格式,就像Unix(和现代Mac)使用的那样\n,但是Windows使用\r\

我对unichar和char有点困惑。我能把unichar的和char的相似吗

例如,我可以这样做:

-(BOOL)isNewLine:(unichar)c {

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

}

是的,unichar在内部是无符号的短字符,因此您可以有意义地将其与字符进行比较(如果后者是ASCII,但这对
'\n'
很好)。

请仔细检查新行,确保您知道行尾的格式,就像Unix(和现代Mac)使用的那样\n,但是Windows使用\r\n和经典的MAC使用\r.

比较UNICHARS时,请考虑使用:

if ([[NSCharacterSet newlineCharacterSet] characterIsMember:unicharCharacter])
{
    //any type of newline
}
else
{
    //etc
}
然后,您将捕获所有类型的换行符,并可以轻松修改代码以匹配不同的字符集(如空格和换行符集)


这是unichars的最大优势。

谢谢。我发现了一个类NSCharacterSet,它有一个静态方法来生成NSNewlineCharacterSet,我可以与之进行比较。