Swift WebKit NSNotification Observer 未接收已发布的通知

问题描述

我有一个类有一个 NSNotification 观察者,但它没有收到发布的通知

class WebParserOperation: Operation {

let myViewController:ViewController
let thisURL:URL

init(_ myViewController:ViewController,_ thisURL:URL) {
    
    self.myViewController = myViewController
    self.thisURL = thisURL
    
    super.init()
    
    NotificationCenter.default.addobserver(self,selector: #selector(parseDemandPartnerData(notification:)),name: .demandPartnerjson,object: nil)
    NotificationCenter.default.addobserver(self,selector: #selector(parseDemandPartnerTable(notification:)),name: .demandPartnerTable,object: nil)
}

override func main() {
    myViewController.loadURL(thisURL)
}

@objc private func parseDemandPartnerTable(notification: NSNotification) {
    print("woot!")
    
}

@objc private func parseDemandPartnerData(notification: NSNotification) {
    print("ok!")
    
}


}

extension Notification.Name {
    static let demandPartnerjson = Notification.Name("dpJSON")
    static let demandPartnerTable = Notification.Name("dpTable")
}

在 ViewController 中,调用 webView didFinish 之后:

func webView(_ webView: WKWebView,didFinish navigation: WKNavigation!)

调用这个函数并发布通知

func parseWebViewHTML() {
    
    if let webView = webView {
        webView.evaluateJavaScript("document.getElementsByTagName('html')[0].innerHTML") { innerHTML,error in
            
            if let thisHTML = innerHTML as? String {
                NotificationCenter.default.post(name: .demandPartnerjson,object: nil,userInfo: ["data":thisHTML])
            }
        }
    }
}

我从来没有收到通知。不知道我做错了什么。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...