2016-06-08 1226 views
6

我正在編寫一些代碼,用Swift中的雙引號處理字符串。以下是我迄今所做的:如何將雙引號插入Swift字符串

func someMethod { 
    let string = "String with \"Double Quotes\"" 
    dealWithString(string) 
} 

func dealWithString(input: String) { 
    // I placed a breakpoint here. 
} 

當我運行代碼斷點停在那裏像往常一樣,但是當我輸入以下到調試器:

print input 

這是我得到的:

(String) $R0 = "String with \"Double Quotes\"" 

我得到了這個字符串的反斜槓。但是,如果我試圖從源代碼中刪除反斜槓,它會給我編譯錯誤。有沒有解決方法?

+0

它是打印字符串的「REAL」值的調試器。當您在代碼中使用變量'input'時,該值將是帶有「雙引號」的字符串' – ntoonio

+0

因爲這是由調試器對字符串進行編碼和呈現的方式。價值仍然是正確的,沒有斜槓。 –

+1

[如何在內部打印雙引號「?](http://stackoverflow.com/questions/30167848/how-to-print-double-quotes-inside) – Patrick

回答

3

你一切正常。反斜槓用作轉義字符,以便以您使用它的方式精確地將雙引號插入到Swift字符串中。

問題是調試器。不是打印字符串的實際值,而是將值打印爲字符串文字,即用雙引號括起來,並且所有特殊字符都能正確轉義。

如果您在代碼中使用print(input),則會看到您期望的字符串,即擴展轉義字符並且沒​​有雙引號。