2017-05-22 8 views
0

私はのUIWebViewをサブクラス化していますが、私はそれがこのエラーでクラッシュ要求をしようとしたときに:ここでのiOS:サブクラスのUIWebViewのURLRequestクラッシュ

fatal error: unexpectedly found nil while unwrapping an Optional value 

は私の実装です:

のViewController:

var web:MyWebView! 

    override func viewDidLoad() { 
     super.viewDidLoad() 
self.webPage = MyWebView(frame: self.view.frame) 
     self.view.bringSubview(toFront: self.webPage!) 
} 

class MyWebView: UIWebView,UIWebViewDelegate { 


let urlStr = "http://apple.com" 

override init(frame: CGRect) { 
    super.init(frame: frame) 
    scalesPageToFit = true 
    scrollView.bounces = false 
    delegate = self 
    let urlRequest = URL(string: urlStr) 
    let request = URLRequest(url: urlRequest!) 
    self.loadRequest(request) 

} 

コンソールのurlRequestの値を確認する場合:

po urlRequest 
nil 

私が間違っていること、またはこのurlRequestがnilとして設定されている理由を知っている人はいますか?

本当にありがとうございます。

+0

がどのように 'MyWebView'を初期化しないのViewControllerからそれを呼び出す私のために正常に動作し、それだけでIBOutletのですか?もしあなたがそれを初期化するところにペーストコードがなければ。あなたのプリントステートメントはどこですか?どのようにnilを印刷するのですか? –

+0

致命的なエラーが発生する行は何ですか? – Koen

答えて

0

これは

import UIKit 

    class MyWebView: UIWebView,UIWebViewDelegate { 


     let urlStr = "https://www.apple.com" 

     required init?(coder aDecoder: NSCoder) { 
      super.init(coder: aDecoder) 
     } 

     override init(frame: CGRect) { 
      super.init(frame: frame) 
      scalesPageToFit = true 
      scrollView.bounces = false 
      delegate = self 
      let urlRequest = URL(string: urlStr) 
      let request = URLRequest(url: urlRequest!) 
      self.loadRequest(request) 
     } 

    } 

その後

import UIKit 

class ViewController: UIViewController { 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     // Do any additional setup after loading the view, typically from a nib. 
    } 

    override func viewDidAppear(_ animated: Bool) { 

     let webView = MyWebView.init(frame: self.view.frame) 
     self.view.addSubview(webView) 

    } 

    override func didReceiveMemoryWarning() { 
     super.didReceiveMemoryWarning() 
     // Dispose of any resources that can be recreated. 
    } 

} 

enter image description here

関連する問題