我正在尝试按照课程学习iOS,并且他们要求执行以下操作:
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 :(得分:4)
你使用了错误的编码。您尝试获取的网页(http://www.google.com/)使用ISO-8859-1
。
我能够重现你的问题。当我改变编码时,Fetch工作。试试这个:
var urlContent = NSString(data: data!, encoding: NSISOLatin1StringEncoding)
答案 1 :(得分:-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!))