2016-08-01 2 views
0

Я начинаю как в Swift, так и в Stack Overflow. Во-первых, я изучил свой вопрос в Интернете и просмотрел все связанные вопросы. Ответ, на который я надеялся, был очень расплывчатым (swift - EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0) with dataTaskWithUrl), и поэтому я надеялся на более четкий ответ. Я пытаюсь использовать Webview для отображения URL-адреса, и я продолжаю получать сообщение об ошибке «Thread 1: EXC_BAD_INSTRUCTION (code = EXC_I386_INVOP, subcode = 0x0)» и «фатальная ошибка: неожиданно найден nil при развертывании необязательного значения». Может кто-нибудь, пожалуйста, помогите мне? Спасибо!Тема 1: EXC_BAD_INSTRUCTION (код = EXC_I386_INVOP, subcode = 0x0) с WebView SWIFT

Вот код:

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) 

    } 
} 
+0

Ваш веб-просмотр, вероятно, не правильно подключен в раскадровке – dan

+0

@dan Не могли бы вы рассказать подробнее? Я новичок, поэтому было бы здорово, если бы я мог знать, что «правильно подключил» означает :) Спасибо! –

+0

вы можете добавить контрольную точку исключения? – Shubhank

ответ

0
  • Это может быть, что один из этой UIWebViews равна нулю. Вот почему у вас есть «фатальная ошибка» ошибки: неожиданно найдено нуль при развертывании необязательного значения ». Доказательство того, что вы подключили все ваши IBOutlets к webViews в Storyboard (я думаю, 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
1

Возможная проблема заключается в том, что вы WebView может быть равна нулю.

Чтобы быстро проверить это, вам необходимо использовать assistant editor (где вы можете увидеть разделенный вид), чтобы показать свою раскадровку с одной стороны и код на другом.

Таким образом, вы можете проверить правильность связи @IBOutlet. Позиционируя курсор на ленте слева от каждого из ваших взглядов веб, он может выделить на какой элемент связан:

enter image description here

Если переменная не связана, вы можете увидеть пустой круг вместо этого полный круг.

Прежде всего, убедитесь, что элементы правильно связаны.

Смежные вопросы