2016-08-13 32 views
10

En yeni xcode beta'm var, sadece bir uygulamanın içine bir web sayfası yüklemeye çalışıyorum. let requestObj = NSURLRequest(URL: url!); Ben hata aşağıdaki almak: Bu satırda "NSURL", "URL" ye dolaylı olarak dönüştürülemez; açıkça dönüştürmek için "olarak" kullanmak mı demek istediniz?

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

Cannot convert value of type "NSURL?" to expected argument type "URL"

ben çalışıyorum varyasyonlar üzerinde: ünlem işaretinin kaldırılmış ve bu hatayı alıyorum

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

Bu kod, tüm dört saat boyunca internet üzerinden. En son hızlı düşünmeyi düşünüyorum, artık buna izin vermiyor, çünkü hiçbir şey işe yaramıyor. 10.0 Deployment Target ve Xcode 8.0 uyumlu olarak ayarlıyorum. Ancak, bu ayarların her ikisi için de önceki sürümleri denedim ve her iki sürümde de aynı hatayı alıyorum.

Evet, web sayfasındaki storyboard'um ViewController.swift öğesine doğru şekilde bağlanmış.

+1

Swift 3'te URL ve URLRequest kullanın (NS önekini bırakın). Http://stackoverflow.com/a/37812485/2227743 adresine bakın. – Moritz

+1

'NSURL (string:)' bir İsteğe Bağlı döndür, onu paketlemeniz gerekir. URL olarak yayınlanacak. – Khundragpan

+0

@ K.Nimo OP zaten onu kaldırma zorluyor - ve URLRequest için * ve * için yeni Swift 3 yapılarını kullanmak daha iyidir. :) – Moritz

cevap

20

Hızlı 3'te, NSURL yerine URL kullanmanız gerekir, bu nedenle bu şekilde URL nesnesi oluşturun. Swift 3.1

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

Tamamen çalışır. Teşekkürler. let url = URL (string: "https://www.google.com"); izin isteğiObj = URLRequest (url: url!); –

+0

neden bu şekilde yapıldı? Neden sadece dönmüyor? – Honey

3

Güncelleme:

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

Bildirimi URL yerine NSURL ve load yerine loadRequest kullanımı.