let url = URL(string:item)!快速返回零

时间:2017-07-28 19:44:21

标签: ios swift uiwebview urlrequest

真的无法想出这个,URL打印并且不等于nil,当我粘贴它时,它在浏览器中有效。有什么想法吗?

import UIKit

class WebViewController: UIViewController {

    var postLink: String = String()
    @IBOutlet weak var mywebView: UIWebView!

    override func viewDidLoad() {
        super.viewDidLoad()
        print(postLink)

        let attempt = postLink
        let url: URL = URL(string: attempt)!
        let request: URLRequest = URLRequest(url: url)
        mywebView.loadRequest(request)

    }

错误发生在:

  

让url:URL = URL(字符串:尝试)!

2 个答案:

答案 0 :(得分:2)

错误很简单,postLink,您提供的创建URL不正确。我的猜测是空的。(只是一个猜测),你忘了设置它。

尽量避免在代码中使用强制解包!。 您应该在方案中使用guard letif let。 在您的情况下,您可能希望在无法加载时向用户显示一些错误。而不是

let url: URL = URL(string: attempt)!

使用

    if let url = URL(string: attempt) {
        let request = URLRequest(url: url)
        mywebView.loadRequest(request)
    } else {
// Do something like. Show an alert that could not load webpage etc. 
}

或者您可以使用guard let,但需要从使用它的函数返回。要了解有关ifguard let使用情况的更多信息,请访问博文here

答案 1 :(得分:1)

我猜你是从另一个控制器传递urlString,改为

LAST_VALUE