使用UITabBarController时出现NSInvalidArgumentException错误

时间:2011-06-06 20:20:07

标签: iphone xcode uitabbarcontroller

我收到了以下错误,我似乎无法弄清楚发生了什么。请帮帮我。

由于未捕获的异常'NSInvalidArgumentException'终止应用程序,原因:' - [UIViewController tableView:numberOfRowsInSection:]:无法识别的选择器发送到实例0x57405a0'

3 个答案:

答案 0 :(得分:0)

这可能是任何事情。它可能是一个被调用的委托,它没有实现协议,或者它可能是一个内存泄漏,在某个已释放的内存上进行调用。这很难说。尝试使用“Analyze”进行编译并检查所有警告。

答案 1 :(得分:0)

如果你正在使用:

 - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { return [array count]; } –

尝试:

NSLog(@"%i", [array count]);

看看有什么回报。也许数组没有正确分配。

答案 2 :(得分:0)

我遇到了类似的问题,但是该解决方案与 numberOfRowsInSection :方法无关,因为Xcode也指向了该方法。

相反,最主要的问题是我没有设置 UIViewController的自定义 类设置...在我的情况下,它为空,而不是在下面的示例图像中具有有效的类名称,例如“ DetailsVC2”。解决此问题后,通常的 numberOfRowsInSection:操作将被识别并正确调用。

通常,您要返回数组的计数(例如tableData),但在我的简单情况下,我返回的值为1。

NSArray *tableData; // Defined somewhere above, and populated prior to the viewDidAppear() operation

 .
 .
 .

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
  return 1; // or tableData.count;
}

enter image description here