macos - 注册网络历史记录通知处理程序时引发意外异常,出了什么问题?

标签 macos swift cocoa webview webkit

在一个 swift OS X 项目中,我试图注册一个观察者来处理从 WebView 发送的 WebHistory 通知。我认为注册过程是成功的,但是当我的通知处理程序应该被调用时,会引发未捕获的异常;具体来说,错误消息是“-[project_name.HistoryController didAddHistoryItems]:无法识别的选择器发送到实例 0x600000002420”。但是HistoryController定义了方法

func didAddHistoryItems(通知:NSNotification)。

所以,出了什么问题?我真的很挣扎。我已经和这个问题斗争了好几天了。我尝试在程序中的各个位置实例化我的 HistoryController (applicationDidFinishLaunching、WebView 的 viewDidLoad 方法、WebView 的 viewDidAppear 方法),甚至将其实例化为全局变量,但结果没有改变。观察者注册如下:

NSNotificationCenter.defaultCenter().addObserver(self, 选择器: Selector("didAddHistoryItems"), 名称: WebHistoryItemsAddedNotification, 对象:nil)

有人可以帮忙吗?我错过了什么?

最佳答案

您需要将 : 添加到选择器的末尾,以表明该方法有参数。该行应该是:

NSNotificationCenter.defaultCenter().addObserver(self, 选择器: Selector("didAddHistoryItems:"), name: WebHistoryItemsAddedNotification, object:nil)

您也不需要 Selector(...) 部分,只需执行以下操作:

NSNotificationCenter.defaultCenter().addObserver(self, 选择器: "didAddHistoryItems:", name: WebHistoryItemsAddedNotification, object:nil)

关于macos - 注册网络历史记录通知处理程序时引发意外异常,出了什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32921823/

相关文章:

macos - Mac OSX 沙箱和公钥

java - 下载适用于 Mac OS X 的 Java 32 位

swift - 带有 RxSwift 的 MVVM-C : '[weak self]' in closure

php - 配置 : error: Please reinstall the BZip2 distribution

c - OS X getsockopt : no SO_PROTOCOL

javascript - HERE折线编码: JavaScript -> Swift

swift - 访问多个 SKShapeNodes 的属性

cocoa - NSTextView 和 NSAttributedString

cocoa - 在 Cocoa 中显示日志输出

iphone - 生成适合 iPhone 查看大小的 PDF