无法识别的选择器发送到UIViewController上的实例
问题描述:
我有一个非常恼人的问题,并且尽可能多地搜索,我找不到答案。当我尝试查看TableView时,我的应用正在终止。数据源和委托设置为实现该协议的文件所有者。无法识别的选择器发送到UIViewController上的实例
的错误我得到这个样子的:
[Session started at 2010-02-27 16:28:24 +0000.]
2010-02-27 16:28:27.209 Moola[28564:207] Unknown class FirstViewController in Interface Builder file.
2010-02-27 16:28:28.189 Moola[28564:207] *** -[UIViewController tableView:numberOfRowsInSection:]: unrecognized selector sent to instance 0x5005900
2010-02-27 16:28:28.190 Moola[28564:207] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[UIViewController tableView:numberOfRowsInSection:]: unrecognized selector sent to instance 0x5005900'
2010-02-27 16:28:28.190 Moola[28564:207] Stack: (
40692267,
2469430537,
40961963,
40426854,
40423522,
4542959,
4550376,
4549359,
3202411,
3139508,
3189226,
3176954,
68444159,
68443501,
68441542,
68440628,
68472982,
40444146,
40231701,
40228984,
49023565,
49023762,
2840157,
9184,
9038
)
最后,这里的SettingsController类的实现文件(SettingsController.m):
我确定这对于专业人士来说是一个小问题,但我来自一个高度基于网络的背景,并且在几年前只涉猎C a。说实话,这伤害了我的头。
感谢,
杰米
答
什么是FirstViewController在这个令人不安的日志行引用?它可能是Interface Builder实际尝试实例化的一些剩余参考,而不是您的SettingsController?
2010-02-27 16:28:27.209 Moola[28564:207] Unknown class FirstViewController in Interface Builder file.
答
您确定接收器确实是SettingsController吗?尝试
NSLog(@"receiver's type: %@", NSStringFromClass([foo class]));
就在呼叫失败之前(当然,将“foo”更改为接收者的实际名称)。
它在项目模板之后被留下。我浏览过IB文件,但找不到它被引用的地方。类文件已被删除。你认为这可能是问题吗? – 2010-02-27 16:52:47
当然,可以。我会狩猎,并加倍确保参考指向SettingsController。你的实现当然看起来很现实,所以我的猜测是错误的东西正在被实例化 - 这个警告是一个强有力的线索。 – 2010-02-27 16:55:18
明白了。 FirstViewController被一个单独的选项卡(在我的选项卡栏中)实例化。不知道为什么它在抱怨,但它与它无关。无论如何,它现在工作。非常感谢。 – 2010-02-27 16:59:26