Objective-C:unichar 与 char

Posted

技术标签:

【中文标题】Objective-C:unichar 与 char【英文标题】:Objective-C: unichar vs. char 【发布时间】:2010-11-08 17:25:52 【问题描述】:

我对 unichar 和 char 有点困惑。我可以像对待 char 一样对待 unichar 吗?

例如,我可以这样做吗:

-(BOOL)isNewLine:(unichar)c 

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


【问题讨论】:

【参考方案1】:

是的,unichar 在内部是 unsigned short,因此您可以将它与 char 进行有意义的比较(如果后者是 ASCII,但对于 '\n' 来说效果很好)。

【讨论】:

【参考方案2】:

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

【讨论】:

谢谢。我找到了一个类 NSCharacterSet,它有一个静态方法来生成我可以比较的 NSNewlineCharacterSet。【参考方案3】:

比较 unichars 时,请考虑改用:

if ([[NSCharacterSet newlineCharacterSet] characterIsMember:unicharCharacter])

    //any type of newline

else

    //etc

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

这是 unichars 的一大优势。

【讨论】:

以上是关于Objective-C:unichar 与 char的主要内容,如果未能解决你的问题,请参考以下文章

为啥当objective-c 有冲突返回类型时会发生这种情况?

有没有办法列出 perluniprops 中的所有类别?

使用 CGPaths 和 CAShapeLayers 动画绘制字母

字符串与基本数据类型转换

Fluke DSX-CHA804DSX-CHA004的区别

Fluke DSX-CHA804DSX-CHA004的区别