2012-08-24 41 views
2

我有扫描一个字符串,将任何新的线,以用于<br> HTML的方法。有问题的行是:格式指定类型“无符号短”,但该参数的类型为“INT”

NSCharacterSet *newLineCharacters = [NSCharacterSet characterSetWithCharactersInString: 
      [NSString stringWithFormat:@"\n\r%C%C%C%C", 0x0085, 0x000C, 0x2028, 0x2029]]; 

的Xcode让我在这里发出警告:

Format specifies type 'unsigned short' but the argument has type 'int' 

它,建议我改变这一切%C%d,但最终证明,打破功能。什么是正确的方式来做到这一点,为什么Xcode推荐错误的东西?

回答

7

一种选择是投你的论点无符号短:即(unsigned short)0x0085

但是,如果你正在寻找新行,你应该只使用换行字符集。这是“支持Unicode标准”:[ NSCharacterSet newlineCharacterSet ]

编辑

重温这样一个问题:如果你试图分开由换行符一个NSString/CFString字符串,你应该使用-[ NSString getLineStart:end:contentsEnd:forRange:]

2

使用罐装字符集为@nielsbot建议是一定要走时,有一个符合您的应用需求的方式。

但就写一个字符串字面量在它的Unicode代码点,你不需要-stringWithFormat:,你可以使用Unicode转义:

NSCharacterSet *aCharSet = [NSCharacterSet 
    characterSetWithCharactersInString:@"\u2704\u2710\u2764"]; 
相关问题