通过类别添加的方法无法识别

时间:2012-10-18 21:21:51

标签: ios

我在UIApplication中添加了一个类别但是我在运行时遇到了无法识别的选择器错误。

现在问题是这个代码已经存在并且已经在另一个项目中工作了10个月,所以我知道它没有任何根本性的错误。 我正在创建一个新项目,并重新使用其他项目中的源文件。我已经将未更改的添加到新项目中,他们仍然继续在旧项目中工作。所以我知道这个代码应该适用于新项目。

我不知道为什么完全相同的代码在一个项目中起作用而在另一个项目中起作用。

供参考,该类别为:

@interface UIApplication (NetworkActivity)
- (void)resetNetworkActivity;
@end


The call which fails:
[[UIApplication sharedApplication]  resetNetworkActivity];


2012-10-18 14:19:26.134 IMS-Reference[5946:907] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIApplication resetNetworkActivity]: unrecognized selector sent to instance 0x1e58e240'
*** First throw call stack:

有什么想法,为什么它不起作用?

2 个答案:

答案 0 :(得分:0)

通常,这是因为您的*.m文件不在目标的编译阶段。所以...只需三重检查:)

答案 1 :(得分:0)

首先检查以确保您实际编译了类别,我在XCode中注意到,当您将文件从一个项目拖到另一个项目时,它们不会被添加到构建阶段的编译源部分。