3

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

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

但这不适用于使用行分隔符(AKA:<code>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...”。

4

1 回答 1

5

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

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

奇迹般有效!

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

@"This is\u2028on two lines…"
于 2012-07-08T16:46:17.737 回答