如何与主线程swift文件交谈以访问主线程变量

时间:2015-09-30 21:23:49

标签: ios multithreading swift uiwebview

我是一个非常有经验的Android开发者,但对于使用swift的iOS开发者来说是非常新的。现在我使用canInitWithRequest(2个单独的swift文件)设置了UIWebview和NSURLProtocol。 canInitWithRequest方法工作得很好但我需要访问UIWebview对象才能调用UIWebview对象上的函数。

例如。如果请求== google.com然后是UIWebview.something()。

在Android中,为了与Main活动线程交谈,我只需创建一个接口,在我的主线程中实现它,现在我可以访问该主要活动类的所有内容。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

您可能正在寻找UIWebViewDelegate protocol中的方法-webView(_:shouldStartLoadWithRequest:navigationType:)

通过实现此接口,您可以拥有一个不同的对象(例如,“单独的Swift文件”中的对象)确定是否加载NSURLRequest,甚至首先运行自定义行为:

extension MyObject: UIWebViewDelegate {
    func webView(webView: UIWebView, shouldStartLoadWithRequest request: NSURLRequest, navigationType: UIWebViewNavigationType) -> Bool {
        if request.URL == NSURL(string: "google.com") {
            // Do your custom behavior...
            webView.something()
        }
        // Allow the webView to load the request
        return true
    }
}