Objective-c中是否有不需要转义特殊字符的字符串文字形式?换句话说,我正在寻找Python三引号的等效形式。
我正在尝试将一些HTML放入NSString
中,并希望避免必须为所有HTML属性转义引号。
Objective-c中是否有不需要转义特殊字符的字符串文字形式?换句话说,我正在寻找Python三引号的等效形式。
我正在尝试将一些HTML放入NSString
中,并希望避免必须为所有HTML属性转义引号。
const char * html = R"HTML(
<HTML>
<HEAD>
<TITLE> [Python-Dev] Triple-quoted strings and indentation
</TITLE>
</HEAD>
<BODY BGCOLOR="#ffffff">
blah blah blah
</BODY>
</HTML>
)HTML";
int
main()
{
}
g++ -std=c++0x -o raw_string raw_string.mm 至少可以编译。
没有三引号的等同物,字符串文字必须始终使用转义字符来处理特殊字符。
也许最好的方法是将HTML放入与源代码分开的文件中,然后使用 -[NSString initWithContentsOfFile:encoding:error:]
(或相关的 initWithContentsOfURL:...
)创建字符串。
针对现在正在阅读此内容的任何人:
自 Swift 4 版本以来,该功能已经实现。在此处了解更多信息:https://github.com/apple/swift-evolution/blob/master/proposals/0168-multi-line-string-literals.md
您可以执行以下操作:
let author = "Im the author!"
let x = """
<?xml version="1.0"?>
<catalog>
<book id="bk101" empty="">
<author>\(author)</author>
<title>XML Developer's Guide</title>
<genre>Computer</genre>
<price>44.95</price>
<publish_date>2000-10-01</publish_date>
<description>An in-depth look at creating applications with XML.</description>
</book>
</catalog>
"""