如何创建包含NSLineSeparatorCharacter的NSString?

时间:2012-07-08 16:46:17

标签: cocoa nsstring

NSString非常友好的unicode。所以通常当我想创建一个包含unicode的字符串时,我可以将它直接弹出到字符串文字中,如下所示:

NSString *myString = @"Press ⌘Q to quit…";

但这不适用于使用行分隔符(AKA:NSLineSeparatorCharacter,Unicode U + 2028,UTF-8 E2 80 A8)。编译器(正确地)将其解释为换行符,这在C语法中是禁止的。

-stringWithFormat:也无济于事。试图

NSString *myString = [NSString stringWithFormat@"This is%don two lines…", NSLineSeparatorCharacter];

给了我一个字符串“This is8232on two lines ......”。

1 个答案:

答案 0 :(得分:5)

结果-stringWithFormat:是正确的方法。我只需要使用%C作为替换,而不是%dNSLineSeparatorCharacter是枚举(因此是整数),因此编译器认为%d是我应该使用的。但是%C是Cocoa插入unichar类型的方式。用一点点铸造......

NSLog(@"This is%Con two lines…", (unichar)NSLineSeparatorCharacter);

像魅力一样!

另请注意Ken的评论如下:您可以使用转义序列将字符直接嵌入到字符串文字中:

@"This is\u2028on two lines…"