使用UITabBarController时出现NSInvalidArgumentException错误

问题描述 投票:0回答:3

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

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

iphone xcode uitabbarcontroller
3个回答
1
投票

如果使用的是:

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

尝试:

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

看看结果如何。也许数组分配不正确。


0
投票

可以是任何东西。可能是被调用的委托未实现协议,或者可能是内存泄漏,在某个释放的内存上进行了调用。这样很难说。尝试使用“分析”进行编译,并检查所有警告。


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

© www.soinside.com 2019 - 2024. All rights reserved.