Objective-c中是否存在一個字符串字面形式,它不需要轉義特殊字符?換句話說,我正在尋找一個相當於Python三重引語。字符串文字無需轉義特殊字符?
我試圖把一些HTML放入NSString
,並且想避免必須從所有HTML屬性中引用引號。
Objective-c中是否存在一個字符串字面形式,它不需要轉義特殊字符?換句話說,我正在尋找一個相當於Python三重引語。字符串文字無需轉義特殊字符?
我試圖把一些HTML放入NSString
,並且想避免必須從所有HTML屬性中引用引號。
有沒有相當於三報價;字符串文字必須總是使用特殊字符的轉義字符。
也許最好的做法是將HTML放入與源文件分開的文件中,然後使用-[NSString initWithContentsOfFile:encoding:error:]
(或相關的initWithContentsOfURL:...
)創建字符串。
不,可惜不是......有在OBJ-C在此字符串字面一些偉大的信息:
http://blog.ablepear.com/2010/07/objective-c-tuesdays-string-literals.html
在C++ 11中,您可以執行此操作。見my answer至similar question。
爲此,你需要在你的情況Objective-C++ 11。它應該在gcc中工作。
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至少編譯。
不錯。我立場糾正。 – smparkes
對於任何人閱讀這現在:
此功能已自斯威夫特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>
"""
你可以使用單引號您的HTML,以避免逃脫它們。 – omz
在C++ 11中,你可以做到這一點。見[我的回答] [1]到[類似的問題] [2]。這在你的情況下需要Objective-C++ 11。它應該工作。 [1]:http://stackoverflow.com/questions/1135841/c-multiline-string-literal/5460235#5460235 [2]:http://stackoverflow.com/questions/1135841/c-multiline -string-literal – emsr
請注意,自從Swift 4開始實施「三重報價」後,請參閱:https://stackoverflow.com/a/47567770/897465 – netigger