I have a valid URL for google maps , which if you run in your browser would show an image of a map. However, when I put it inside my Swift code and try to create an NSURL from S
Looking at the Apple documentation:
This method expects URLString to contain only characters that are allowed in a properly formed URL. All other characters must be properly percent escaped. Any percent-escaped characters are interpreted using UTF-8 encoding.
Likely there's something incorrect in your string, and you need to encode it before passing it to NSURL
, you can do this via stringByAddingPercentEncodingWithAllowedCharacters
:
if let encodedString = urlString.stringByAddingPercentEncodingWithAllowedCharacters(NSCharacterSet.URLQueryAllowedCharacterSet() {
url = NSURL(string: urlString)
}
It should work: Here is why http://www.url-encode-decode.com
let url = NSURL(string: urlString.stringByAddingPercentEscapesUsingEncoding(NSUTF8StringEncoding)!)
Since above API is deprecated alternative approach is
let url = NSURL(string: urlString.stringByAddingPercentEncodingWithAllowedCharacters(NSCharacterSet.URLQueryAllowedCharacterSet())!)