2015-11-06 63 views
2

我努力學習以下課程iOS和他們要求做到以下幾點:迅速NSURL即使回來「無法讀取數據」的消息以https://

override func viewDidLoad() { 
    super.viewDidLoad() 
    // Do any additional setup after loading the view, typically from a nib. 

    //var string1 = "http://www.google.com" 
    //var string1 = "https://www.weather-forecast.com/locations/San-Antonio/forecasts/latest" 
    //var url = NSURL(string: string1) 
    var url = NSURL(string: "https://google.com") 

    print(url) 

     if url != nil { 

      let task = NSURLSession.sharedSession().dataTaskWithURL(url!, completionHandler: { (data, response, error) -> Void in 

       var urlError = false 

       if error == nil { 

        var urlContent = NSString(data: data!, encoding: NSUTF8StringEncoding) 
        print(urlContent) 


       } else { 

        urlError = true 

       } 

       if urlError == true { 
        self.showError() 
       } 
     }) 

      task.resume() 

     } else { 

      showError() 

    } 
} 

應用程序不顯示任何網頁的內容和調試時,我發現該網址的對象說,它是「無法讀取數據」

我已經嘗試使用http和https。我曾嘗試過不同的網站。

我已經嘗試在模擬器的safari中的地址,它加載。

誰能告訴我這是爲什麼不工作

在此先感謝。 gariva

+0

你在哪一行得到這個迴應? –

+0

之前> var url = NSURL(string:「https://google.com」) url對象有一個十六進制地址。 該行執行後的URL對象具有「無法讀取數據的價值 下一行 打印(網址!) 打印可選(https://google.com) 但在此之後的代碼永遠不會奏效。 – gariva

回答

4

您正在使用錯誤的編碼。您嘗試獲取的網頁(http://www.google.com/)使用ISO-8859-1

enter image description here

我能夠重現您的問題。當我改變編碼時,Fetch工作。試試這個:

var urlContent = NSString(data: data!, encoding: NSISOLatin1StringEncoding) 
+0

謝謝,嘗試過,但沒有奏效。代碼從來沒有做到這一行。 – gariva

-1

對於顯示網頁,您應該使用UIWebView元素。這樣的事情:

 let url = NSURL(string: "https://google.com") 
     let webView = UIWebView(frame: self.view.frame) 
     self.view.addSubview(webView) 
     webView.loadRequest(NSURLRequest(URL: url!))