2

我正在使用 WKWebView 和 Swift 语言创建一个简单的 Web 查看器。这是我的代码。

import Cocoa
import WebKit

@NSApplicationMain class AppDelegate: NSObject, NSApplicationDelegate {

    @IBOutlet var containerView : NSView! = nil
    @IBOutlet weak var window: NSWindow!


    func applicationDidFinishLaunching(aNotification: NSNotification) {
        // Insert code here to initialize your application
        var webView: WKWebView

        webView = WKWebView() //Thread 1:EXC_BAD_ACCESS (code=1,address=0x20)
        var url = NSURL(string:"http://www.google.com/")
        var req = NSURLRequest(URL: url!)
        webView.loadRequest(req)
    }

    func applicationWillTerminate(aNotification: NSNotification) {
        // Insert code here to tear down your application
    }

}

现在,webView = WKWebView()当我尝试运行应用程序时,在线上出现“线程 1:EXC_BAD_ACCESS”错误。我怎样才能解决这个问题?

4

3 回答 3

0

如果这就是您的全部代码,那么我会说您缺少实例化WKWebView. 在行上放一个断点self.webView!.loadRequest(req)并检查它是否为nil。

我从未使用过WKWebView,但我认为您需要一个视图控制器。也许这篇博文可以帮助你:在 iOS 8 中使用 Swift 开始使用 WKWebView

于 2014-10-08T09:10:49.930 回答
0

你忘了初始化你的 WKWebView

var webView = WKWebView(frame: CGRectMake(0, 0, 320, 480))
var url = NSURL(string:"http://www.google.com/")
var req = NSURLRequest(URL: url)
webView.loadRequest(req)
于 2014-10-08T09:21:15.640 回答
0

每当我尝试使用全新的最小类作为委托时,我都会收到此错误。例如:

class MyDelegate: NSObject, UIWebViewDelegate { /* ... */ }

当我尝试使用默认 ViewController 作为委托时,不会发生这种情况。例如:

class ViewController: UIViewController, UIWebViewDelegate { /* ... */ }

我建议使用 ViewController 作为委托,直到我们深入了解这一点。

于 2015-02-23T22:03:19.110 回答