2

我已向 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:

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

4

2 回答 2

0

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

于 2012-10-18T21:24:45.533 回答
0

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

于 2012-10-18T21:25:02.567 回答