web-dev-qa-db-ja.com

「NSURL」は「URL」に暗黙的に変換できません。 「as」を使用して明示的に変換するつもりでしたか?

アプリ内にウェブページをロードしようとしているだけの最新の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」へ

過去4時間、インターネット全体からこのコードのバリエーションを試してきました。私は最新のSwiftはこれ以上何も許可しないので、何も機能しないので、考えています。10.0Deployment TargetとXcode 8.0互換に設定されています。これらの設定の両方の以前のバージョンと両方のすべてのバージョンで同じエラーが表示されます。

はい、ストーリーボード上の私のwebViewはViewController.Swiftに正しく接続されています。

14

Swift 3では、URLの代わりにNSURLを使用する必要があるため、このようなurlオブジェクトを作成します。

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

Swift 3.1の更新:

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

URLの代わりにNSURLloadの代わりにloadRequestが使用されていることに注意してください。

4
Andres