Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 将选择器发送到另一个类。以及创建类的实例_Objective C_Cocoa - Fatal编程技术网

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,不建议使用核心数据管理对象类。@我明白了,这就是我出错的原因@戴夫,不然我怎么做我的班级的例子呢?