Objective c 将选择器发送到另一个类。以及创建类的实例
如何将选择器发送到另一个类? 我知道要将它发送到选择器中,与您所做的相同Objective c 将选择器发送到另一个类。以及创建类的实例,objective-c,cocoa,Objective C,Cocoa,如何将选择器发送到另一个类? 我知道要将它发送到选择器中,与您所做的相同 [self performSelector:@selector(doSomething)]; 把它送到另一个班级我试过了 [otherClass performSelector:@selector(doSomethingElse)]; 但我只是在调试器中得到一个错误 +[otherClass doSomethingElse]: unrecognized selector sent to class 0xe5c4 这是
[self performSelector:@selector(doSomething)];
把它送到另一个班级我试过了
[otherClass performSelector:@selector(doSomethingElse)];
但我只是在调试器中得到一个错误
+[otherClass doSomethingElse]: unrecognized selector sent to class 0xe5c4
这是为什么
根据Daves的回答进行编辑 “很可能它不是一个类方法,而是一个实例方法…”
那么如何创建我的类的实例呢?从调试消息
+[otherClass doSomethingElse]
中,它表示您正在将其发送到类本身,这意味着您正在尝试调用类(静态)方法
很可能它不是一个类方法,而是一个实例方法,这意味着您应该:
[anInstanceOfOtherClass performSelector:@selector(doSomethingElse)];
-(无效)移除观察者{…}
这是你的问题。-
符号将其标识为实例方法;仅在类的对象上运行。您需要做的是声明并将其定义为:
+(void)removeObserver …
你可以称之为:
[JGManagedObject removeObserver];
这样,您就不需要使用performSelector:
来避免向类发送实例消息时收到的错误消息
为了帮助您,以下是相关的信息。啊!我懂了。那么我该如何创建这个类的实例呢?谢谢,我已经添加了这个,但是由于添加了代码(从外观上看),仍然会出现相同的错误以及更多错误。JGManagedObject取代了
otherClass
@Dave alloc/init,不建议使用核心数据管理对象类。@我明白了,这就是我出错的原因@戴夫,不然我怎么做我的班级的例子呢?