我正在尝试使用NSNotification在两个快速类之间进行通信。我不知道我做错了什么,但在其他通知工作正常的情况下,其中一个不断给出无法识别的选择器随机发送到实例异常。随机地我的意思是每次我执行该代码异常是相同的但类引用是不同的,如__CALayer,__ NSArray,__ NSSet等,我甚至不直接使用这些类。有什么帮助吗?
这是观察者类的初始化方法:
override init() {
super.init()
NSNotificationCenter.defaultCenter().addObserver(self, selector: "downloadChapter:", name: "downloadListNotification", object: DisplayMangaViewController.self)
NSNotificationCenter.defaultCenter().addObserver(self, selector: "downloadChapter:", name: "downloadListNotification", object: DownloadRequestListViewController.self)
}
和我在里面发布通知的那个:
let userInfo = ["downloadList" : self.selectedChapters , "mangaName" : self.obtainedMangaName]
let notification = NSNotification(name: "downloadListNotification", object: DownloadRequestListViewController.self, userInfo: userInfo as [NSObject : AnyObject])
NSNotificationCenter.defaultCenter().postNotification(notification)
以下是一个例外情况:
2015-09-05 19:49:45.598TurkİşManga[12708:58814] - [__ NSArrayM downloadChapter:]:无法识别的选择器发送到实例 0x7fbf9c80dd90 2015-09-05 19:49:45.600TurkİşManga[12708:58814] *** 由于未捕获的异常而终止应用程序 'NSInvalidArgumentException',原因:' - [__ NSArrayM downloadChapter:]: 无法识别的选择器发送到实例0x7fbf9c80dd90'
这里也是下载草案的方法:
func downloadChapter(notification : NSNotification){}
答案 0 :(得分:0)
显然我的观察者类被取消分配,因此当发布通知时会有任何观察者。因此,在发布任何通知之前,从observer类创建实例已解决了该问题。感谢。