web-dev-qa-db-fra.com

"NSURL" n'est pas implicitement convertible en "URL"; vouliez-vous utiliser "as" pour effectuer une conversion explicite?

J'ai la dernière version bêta de xcode, j'essaie simplement de charger une page Web dans une application.

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

Sur cette ligne: let requestObj = NSURLRequest(URL: url!); J'obtiens l'erreur suivante:

"NSURL" n'est pas implicitement convertible en "URL"; vouliez-vous utiliser "as" pour effectuer une conversion explicite?

J'ai supprimé le point d'exclamation et j'obtiens cette erreur:

Impossible de convertir la valeur de type "NSURL?" au type d'argument attendu "URL"

J'ai essayé des variations sur ce code de partout sur Internet au cours des quatre dernières heures. Je pense que le dernier Swift ne permet plus cela ou quelque chose, car rien ne fonctionne. Je suis défini sur une cible de déploiement 10.0 et compatible Xcode 8.0. Mais j'ai également essayé les versions antérieures pour ces deux paramètres et j'obtiens la même erreur dans toutes les versions des deux.

Oui, ma webView sur le storyboard est correctement connectée au ViewController.Swift.

14
Works for a Living

Dans Swift 3 vous devez utiliser URL au lieu de NSURL, alors créez un objet URL comme celui-ci.

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

Mise à jour pour Swift 3.1:

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

Notez l'utilisation de URL au lieu de NSURL et load au lieu de loadRequest.

4
Andres