致命错误:在展开可选值(lldb)时意外发现nil

Fab*_*zio 3 swift

当我按下sideBar上的按钮停在这里时出现错误:

webView.scalesPageToFit = true
webView.loadRequest(request)
Run Code Online (Sandbox Code Playgroud)

我想请求帮助解决问题.以下是我的代码ViewController.swift

import UIKit

class ViewController: UIViewController, UISearchBarDelegate {
    @IBOutlet weak var searchBar: UISearchBar!
    @IBOutlet weak var webView: UIWebView!

    override func viewDidLoad() {
        super.viewDidLoad()

        let url = NSURL(string: "http://www.apple.com")
        let request = NSURLRequest(URL: url!)

        webView.scalesPageToFit = true
        webView.loadRequest(request)
    }

    func searchBarSearchButtonClicked(searchBar: UISearchBar! {
        caricaUrl(searchBar.text)
    }

    func caricaUrl(url: String) {
        let url = NSURL(string: "http://www.google.com/search?q=" + "\(url)")

        let request = NSURLRequest(URL: url!)

        webView.scalesPageToFit = true
        webView.loadRequest(request)
    }

    func didReceiveMemoryWaarning() {
        super.didReceiveMemoryWarning()   
    }


    @IBAction func onBurger() {
        (tabBarController as TabBarController).sidebar.showInViewController(self, animated: true)
    }

}
Run Code Online (Sandbox Code Playgroud)

Wie*_*iem 6

您的Web视图是一个可选值,因此您必须强制打开它或者在调用它时说它是可选的.你的应用程序试图强行打开它,然后它以零返回.这意味着您无法强制解包变量.

因此,您可以在声明它们的两个位置更改这两行:

webView.scalesPageToFit = true
webView.loadRequest(request)
Run Code Online (Sandbox Code Playgroud)

这些行:

webView?.scalesPageToFit = true
webView?.loadRequest(request)
Run Code Online (Sandbox Code Playgroud)

问号明确表示webView变量是可选的.