如何解决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 举报,一经查实,本站将立刻删除。