I've been playing around with Swift, and just came across an issue. I have the following Dictionary in:
var locations:Dictionary<String,CLLocationCoordinate2D> = ["current":CLLocationCoordinate2D(latitude: lat, longitude: lng) ]; println("current locaition is \(locations["current"])")
but the compiler is complaining about double quotes around current
which represent the a key in my dictionary.
I tried escaping it with \
but it wasn't the right way.
Appreciate any help.
To include quotes inside a string in Swift, escape the quote symbol with backslash character, i.e., place a backslash character before the double quote inside the string.
You can put a backslash character followed by a quote ( \" or \' ). This is called an escape sequence and Python will remove the backslash, and put just the quote in the string. Here is an example. The backslashes protect the quotes, but are not printed.
Xcode 7.1+
Since Xcode 7.1 beta 2, we can now use quotations within string literals. From the release notes:
Expressions interpolated in strings may now contain string literals. For example, "My name is (attributes["name"]!)" is now a valid expression. (14050788)
Xcode <7.1
I don't think you can do it that way.
From the docs
The expressions you write inside parentheses within an interpolated string cannot contain an unescaped double quote (") or backslash (\), and cannot contain a carriage return or line feed.
You'd have to use
let someVar = dict["key"] println("Some words \(someVar)")
You can use string concatenation instead of interpolation:
println("Some words " + dict["key"]! + " some more words.")
Just mind the spaces around the +
signs.
UPDATE:
Another thing you can do is to use string format specifiers the same way how it was done back in the objective-c days:
println( String(format: "Some words %@ some more words", dict["1"]!) )
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With