I'm a beginner at Swift as well as on Stack Overflow. First things first, I have researched my question online and went through all the related questions.The answer I was hoping for was very vague ( swift - EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0) with dataTaskWithUrl ) and so I was hoping for a clearer answer. I am trying to use Webview to display a url, and I keep on getting the error 'Thread 1: EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0)' and 'fatal error: unexpectedly found nil while unwrapping an Optional value'. Could someone please help me? Thank you!
Here is the code:
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)
}
}
Possible the problem is that you webview may be nil.
To quickly check this, you need to use the assistant editor
(where you can see a split view) to show your storyboard on one side and the code on the other.
In this way you can check that the @IBOutlet
is correctly bound. By positioning the mouse over the ribbon to the left of each of your web views, it will highlight to which element is bound:
If your variable is not bound, you can see an empty circle instead a full circle.
You first check that, to be sure the elements are correctly bound.
It can be, that one of this UIWebViews is nil. That's why, you have the error 'fatal error: unexpectedly found nil while unwrapping an Optional value'. Proof that you have connected all your IBOutlets with webViews in Storyboard (I think, dan means it). And a possibility, change your code to:
@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 } }
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.