如何创建包含NSLineSeparatorCharacter的NSString?

jem*_*ons 3 cocoa nsstring

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

NSString *myString = @"Press ?Q to quit…";
Run Code Online (Sandbox Code Playgroud)

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

-stringWithFormat:也没有帮助.试

NSString *myString = [NSString stringWithFormat@"This is%don two lines…", NSLineSeparatorCharacter];
Run Code Online (Sandbox Code Playgroud)

给了我一个字符串"This is8232on two lines ......".

jem*_*ons 5

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

NSLog(@"This is%Con two lines…", (unichar)NSLineSeparatorCharacter);
Run Code Online (Sandbox Code Playgroud)

奇迹般有效!

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

@"This is\u2028on two lines…"
Run Code Online (Sandbox Code Playgroud)

  • 你也可以使用转义序列嵌入角色:`@"这是\ u2028两行..."` (4认同)