Cocoa 如何创建包含NSLineSeparatorCharacter的NSString?

Cocoa 如何创建包含NSLineSeparatorCharacter的NSString?,cocoa,nsstring,Cocoa,Nsstring,NSString对unicode非常友好。因此,通常当我想要创建包含unicode的字符串时,我可以直接将其弹出到字符串文本中,如下所示: NSString *myString = @"Press ⌘Q to quit…"; 但使用行分隔符(也称为:
NSLineSeparatorCharacter,Unicode U+2028,UTF-8 E2 80 A8)。编译器(正确地)将其解释为换行符,这在C语法中是不允许的 -stringWithFormat:也没有帮助。尝试 NSString *m

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

NSString *myString = @"Press ⌘Q to quit…";
但使用行分隔符(也称为:
<代码>NSLineSeparatorCharacter,Unicode U+2028,UTF-8 E2 80 A8)。编译器(正确地)将其解释为换行符,这在C语法中是不允许的

-stringWithFormat:
也没有帮助。尝试

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

给我字符串“这是两行上的8232…”。

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

NSLog(@"This is%Con two lines…", (unichar)NSLineSeparatorCharacter);
工作起来很有魅力

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

@"This is\u2028on two lines…"

您也可以使用转义序列嵌入角色:
@“这是\u2028,在两行上…”
@KenThomases非常正确。谢谢