线程1:EXC_BAD_INSTRUCTION(代码= EXC_I386_INVOP,子代码= 0x0),带有WebView SWIFT

时间:2016-08-01 15:12:04

标签: ios swift webview

我是Swift的初学者以及Stack Overflow的初学者。首先,我在网上研究了我的问题并完成了所有相关的问题。我希望的答案非常模糊(swift - EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0) with dataTaskWithUrl)所以我希望得到更清楚的答案。我正在尝试使用Webview来显示网址,并且我继续收到错误'线程1:EXC_BAD_INSTRUCTION(代码= EXC_I386_INVOP,子代码= 0x0)'和'致命错误:在展开“可选值”时意外发现nil。有人可以帮帮我吗?谢谢!

以下是代码:

 import UIKit


 class ViewController: UIViewController {


    @IBOutlet var MoongateWebView: UIWebView!
    @IBOutlet var ManagebacWebView: UIWebView!
    @IBOutlet var MoodleWebView: UIWebView!
    @IBOutlet var LibraryWebView: UIWebView!
    @IBOutlet var CCAWebView: UIWebView!
    @IBOutlet var gmailWebView: UIWebView!


    override func viewDidLoad() {
        super.viewDidLoad()


       //loading Moongate on the screen
        let mgurl = NSURL(string: "http://moongate.cis.edu.hk/")
        let mgrequest = NSURLRequest(URL: mgurl!)

        MoongateWebView.loadRequest(mgrequest) //Error Occurs

       //loading Managebac on the screen
        let mburl = NSURL(string:"https://cishk.managebac.com/login" )
        let mbrequest = NSURLRequest(URL: mburl!)

        ManagebacWebView.loadRequest(mbrequest)

        //loading Moodle on the screen
        let mdurl = NSURL(string: "http://moodle.cis.edu.hk/moodle/")
        let mdrequest = NSURLRequest(URL: mdurl!)

        MoodleWebView.loadRequest(mdrequest)

        //loading Library on the screen
        let liburl = NSURL(string: "http://library.cis.edu.hk/")
        let librequest = NSURLRequest(URL: liburl!)

        LibraryWebView.loadRequest(librequest)

        //loading CCAs on the screen
        let ccaurl = NSURL(string: "http://moongate.cis.edu.hk/content/page.aspx?e=F17A69B3-62F1-46FF-A474-8776C2D2492D")
        let ccarequest = NSURLRequest(URL: ccaurl!)

        CCAWebView.loadRequest(ccarequest)

        //loading gmail on the screen
        let gmailurl = NSURL(string: "https://mail.google.com/mail/u/0/")
        let gmailrequest = NSURLRequest(URL: gmailurl!)

        gmailWebView.loadRequest(gmailrequest)

     }
}

2 个答案:

答案 0 :(得分:1)

可能的问题是你的webview可能是零。

要快速检查这一点,您需要使用assistant editor(您可以在其中看到拆分视图)在一侧显示故事板,在另一侧显示代码。

通过这种方式,您可以检查@IBOutlet是否正确绑定。通过将鼠标放在每个Web视图左侧的功能区上,它将突出显示绑定到哪个元素:

enter image description here

如果您的变量未绑定,则可以看到一个空圆圈而不是一个完整的圆圈。

首先检查一下,确保元素绑定正确。

答案 1 :(得分:0)

  • 可能是,这个UIWebViews之一是零。这就是为什么,你有错误'致命错误:在解开一个Optional值时意外地发现了nil'。证明您已将所有IBOutlet与故事板中的webView连接起来(我认为,dan意味着它)。并且有可能将代码更改为:

    @IBOutlet var MoongateWebView: UIWebView?
    @IBOutlet var ManagebacWebView: UIWebView?
    @IBOutlet var MoodleWebView: UIWebView?
    @IBOutlet var LibraryWebView: UIWebView?
    @IBOutlet var CCAWebView: UIWebView?
    @IBOutlet var gmailWebView: UIWebView?
    
    override func viewDidLoad(){ 
      super.viewDidLoad()
    
        if let _ = MoongateWebView {
           let mgurl = NSURL(string: "http://moongate.cis.edu.hk/")
           let mgrequest = NSURLRequest(URL: mgurl!)
               MoongateWebView!.loadRequest(mgrequest) //Error Occurs
        }
    }
    
      每个webview的
    • 等等