如何将Selector发送到另一个类? 我知道将它发送到您执行的同一文件中的选择器
[self performSelector:@selector(doSomething)];
并将其发送到另一个我尝试过的课程
[otherClass performSelector:@selector(doSomethingElse)];
但是我在调试器中遇到错误
+[otherClass doSomethingElse]: unrecognized selector sent to class 0xe5c4
为什么这???
编辑响应Daves回答
'有可能它不是类方法而是实例方法......'
如何创建我的班级实例?
答案 0 :(得分:3)
从调试消息+[otherClass doSomethingElse]
开始,它表示您正在将它发送给类本身,这意味着您正在尝试调用类(静态)方法。
有可能它不是一个类方法,而是一个实例方法,这意味着你应该这样做:
[anInstanceOfOtherClass performSelector:@selector(doSomethingElse)];
答案 1 :(得分:2)
- (void)removeObserver {...}
有你的问题。 -
符号将此标识为实例方法;它只在类的对象上运行。您需要做的是声明并将其定义为:
+(void)removeObserver …
您可以将其称为:
[JGManagedObject removeObserver];
这样,您就不需要使用performSelector:
来避免在向类发送实例消息时收到的错误消息。
为了帮助您,这里是相关的documentation。