Thom Thom - 3 months ago 283
Swift Question

"NSURL" is not implicitly convertible to "URL"; did you mean to use "as" to explicitly convert?

I have latest xcode beta, just trying to load a webpage inside an app.

import UIKit

class ViewController: UIViewController {

@IBOutlet var webView: UIWebView!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
let url = NSURL (string: "https://www.google.com");
let requestObj = NSURLRequest(URL: url!);
webView.loadRequest(requestObj);
}

override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}


On this line:
let requestObj = NSURLRequest(URL: url!);

I get this error: "NSURL" is not implicitly convertible to "URL"; did you mean to use "as" to explicitly convert?

I removed the exclamation mark I get this error:
Cannot convert value of type "NSURL?" to expected argument type "URL"

I've been trying variations on this code from all over the internet for the past four hours. I'm thinking latest swift just doesn't allow this anymore or something, because nothing works. I'm set to a 10.0 Deployment Target and a Xcode 8.0 compatible. But I've also tried earlier versions for both of those settings and I get the same error across all versions of both.

Yes, my webView on the storyboard is properly connected to the ViewController.swift.

Answer

In swift 3 you need to use URL instead of NSURL, so create url object like this.

let url = URL(string: "https://www.google.com")
Comments