Convert String to NSURL is return nil in swift Convert String to NSURL is return nil in swift swift swift

Convert String to NSURL is return nil in swift


As suggested by the Martin R, I see THIS post and I converted that objective-c code to swift and I got this code:

var url : NSString = "https://maps.googleapis.com/maps/api/distancematrix/json?origins=\(self.latitud‌​e),\(self.longitude)&destinations=\(self.stringForDistance)&language=en-US" var urlStr : NSString = url.stringByAddingPercentEscapesUsingEncoding(NSUTF8StringEncoding)! var searchURL : NSURL = NSURL(string: urlStr)! println(searchURL)

and this is working correctly.

For swift 3.0:

let url : NSString = "https://maps.googleapis.com/maps/api/distancematrix/json?origins=\(self.latitud‌​e),\(self.longitude)&destinations=\(self.stringForDistance)&language=en-US"let urlStr : NSString = url.addingPercentEscapes(using: String.Encoding.utf8.rawValue)! as NSStringlet searchURL : NSURL = NSURL(string: urlStr as String)!print(searchURL)


as blwinters said, in Swift 3.0 use

URL(string: urlPath.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)!)


I think try this it's perfectly work for me

  var url : String = "https://maps.googleapis.com/maps/api/distancematrix/json?origins=-34.4232722,150.8865837&destinations=-34.4250728,150.89314939999997&language=en-US"        println("This is String: \(url)")        var urlStr : NSString = url.stringByAddingPercentEscapesUsingEncoding(NSUTF8StringEncoding)!        var remoteUrl : NSURL? = NSURL(string: url)        println("This is URL: \(remoteUrl!)")