【发布时间】:2015-05-19 19:57:11
【问题描述】:
我正在创建一个 vCard,其中包括一个注释,就像这样
[vCardArray addObject:[NSString stringWithFormat:@"NOTE:%@", note]];
然后,按照标准过程,使用“\n”从数组中创建一个字符串,就像这样
NSString *string = [vCardArray componentsJoinedByString:@"\n"];
产生的冲突是我的笔记字符串中有一个“\n”,这弄乱了 vCard 表示。我曾尝试在我的注释字符串中使用“\r”作为分隔符,但无济于事。
有没有办法解决这个问题?我想在我的笔记中添加一行额外的空格。提前致谢!
【问题讨论】:
-
为什么 \n 会弄乱 vCard 表示?某些条目在其内容中是否允许换行,注意是其中之一吗?在给定特定输入的情况下,您希望看到的确切输出是什么?
-
在我上面的名为“note”的字符串中,我想让它说“abcdef \nxyz”。该注释以“NOTE:abcdef \nxyz”的形式添加到 vCardArray 中。最后一行通过 \n 连接数组中的对象,这是我读过的标准过程。如果我删除注释字符串“abcdef xyz”中的 \n,则 vCard 可以完美运行。但是当它在末尾加入数组时,它正在读取该字符串的 \n
-
好的,所以您想将 \n 视为文本而不是换行符,请将注释文本中的 \n 替换为 \\n。 [注意 stringByReplacingOccurrencesOfString:@"\n" withString:@"\\n"]。您可以稍后执行相反的操作以将正确的 \ns 重新放入。
-
成功了!非常感谢
-
嗨,Rory,如果我将使用 \\n 格式的 vCard 发送给 Android 用户,则注释看起来像这样 abcdef \nxyz(当输入为 abcdef \\nxyz 时)。有没有办法解决这个问题?
标签: ios objective-c line-breaks vcf-vcard