“NSURL”不能隐式转换为“URL”;你的意思是使用“as”来明确转换?

时间:2016-08-13 10:43:08

标签: swift nsurl swift3

我有最新的xcode测试版,只是尝试在应用内加载网页。

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.
    }
}

在这一行:let requestObj = NSURLRequest(URL: url!); 我收到以下错误:

  

“NSURL”不能隐式转换为“URL”;你的意思是使用“as”来明确转换?

我删除了感叹号并收到此错误:

  

无法转换“NSURL”类型的值?预期参数类型“URL”

在过去的四个小时里,我一直在尝试使用互联网上的代码进行修改。我在想最新的swift只是不允许这样或者什么,因为没有任何作用。我设置为10.0部署目标和Xcode 8.0兼容。但我也尝试过这两个设置的早期版本,并且我在两个版本的所有版本中都得到了相同的错误。

是的,故事板上的webView已正确连接到ViewController.swift。

2 个答案:

答案 0 :(得分:22)

在swift 3中,你需要使用URL而不是NSURL,所以创建这样的url对象。

if let url = URL(string: "https://www.google.com") {
    webView.load(URLRequest(url: url))
}

答案 1 :(得分:4)

Swift 3.1的更新:

    let url = URL(string: "https://www.google.com")
    let request = URLRequest(url: url!)
    webView.load(request)

请注意使用URL代替NSURLload代替loadRequest