我正在尝试将观察者添加到我之前在代码中发布的println(self.respondsToSelector("setStuff:"))
if self.respondsToSelector("setStuff:"){
println("it responses to selector set stuff")
NSNotificationCenter.defaultCenter().addObserver(DisplayMangaViewController.self, selector: "setStuff:", name: "pagesNotification", object: UrlAndNameList.self)
}
通知中,但Xcode提供了该异常
由于未捕获的异常而终止应用 ' NSInvalidArgumentException',原因: ' + [TurkI_s_Manga.DisplayMangaViewController setStuff:]:无法识别 选择器发送到类0x102ffd650'。
我在代码中使用了相同的结构三次,只有其中一个导致异常。所以我尝试检查选择器,然后尝试使用它:
true
此代码块打印it responses to the selector set stuff
然后ItemIsSelectable
,但当观察者收到通知时,它会给出上述异常。
任何帮助都将不胜感激,谢谢。
答案 0 :(得分:2)
从上面的评论中:您正在添加类型(类)作为观察者(如果setStuff
是类型方法,则可以工作)。您可能想要的是
NSNotificationCenter.defaultCenter().addObserver(self, ...)
将实例 self
添加为观察者。
答案 1 :(得分:0)
您正在检查一件事(self)是否响应选择器,然后添加另一件事(DisplayMangaViewController.self)作为观察者,它不响应选择器。所以请解释为什么你会认为这是Xcode的错,而不是你自己的错误。
调试的第一条规则:当出现问题时,你的错误。 你做错了什么。找出你做错了什么。有数百万开发人员使用Xcode。你是否真的认为如果它有这样的微不足道的错误,你会不会到处听到它?