2016-06-08 14 views
6

Sto scrivendo alcuni codici che si occupano di stringa con virgolette doppie in Swift. Ecco quello che ho fatto finora:Come inserire le doppie virgolette in Swift String

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

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

Quando eseguo i codici del breakpoint fermato lì come al solito, ma quando ho immettere quanto segue nel debugger:

print input 

Questo è ciò che ottengo :

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

Ho ottenuto questa stringa con i backslash. Ma se provassi a rimuovere i backslash dal sorgente, mi darebbe un errore di compilazione. C'è una soluzione per questo?

+0

È il debugger che stampa il valore "REALE" della stringa. Quando si utilizza la variabile 'input' nel codice, il valore sarà' String con "Double Quotes" ' – ntoonio

+0

Perché quello è il modo in cui la stringa viene codificata e presentata dal debugger. Il valore è ancora corretto, senza barre. –

+1

Possibile duplicato di [Come stampare virgolette doppie dentro ""?] (Http://stackoverflow.com/questions/30167848/how-to-print-double-quotes-inside) – Patrick

risposta

3

Stai facendo tutto bene. La barra rovesciata viene utilizzata come carattere di escape per inserire virgolette doppie nella stringa Swift esattamente nel modo in cui la si utilizza.

Il problema è il debugger. Invece di stampare il valore effettivo della stringa, stampa il valore come stringa letterale, cioè racchiuso tra virgolette doppie, con tutti i caratteri speciali correttamente sfuggiti.

Se si utilizza nel codice, si vedrà la stringa che ci si aspetta, ovvero con caratteri di escape espansi e senza virgolette.