多次调用UITableView numberOfRowsInSection

时间:2011-03-08 09:26:24

标签: iphone objective-c xcode uitableview

填充表格视图时应该调用tableView:numberOfRowsInSection方法多少次?

我的应用程序崩溃,没有警告,错误或堆栈跟踪。我还测试了内存泄漏,但没有找到。该应用程序稳定在1.4MB左右。

我有NSLog报告,因为方法是消息,我注意到多次调用tableView:numberOfRowsInSection。应用程序在其中一个“额外”调用期间崩溃。应用程序崩溃的点会有所不同。我应该指出,如果这会产生影响,那么该表格将填充大约600个单元格。

我可以根据需要发布代码,但我的数据源来自singleton class,所以代码很多。任何帮助将不胜感激。

3 个答案:

答案 0 :(得分:1)

在另一个类似问题中查看我的回答:link
基本上,对表视图的委托方法的调用可以由不同的事件触发。 UITableView多次调用numberOfRowsInSection(即使是同一部分)也不会让我感到惊讶。

答案 1 :(得分:0)

最好的方法是使用Lazy table image loading。所以600个单元格数量很大,如果你一次调用所有数据,它将永远因内存问题而崩溃。

尝试使用我提供的代码。

stackoverflow 上的另一个答案可以帮助你。

答案 2 :(得分:0)

我遇到同样的问题,第一次tableview实例不是nil,随后的时间是nil。问题是,我还没有设置 - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath的返回值,因此它一直在发生。一旦我设置了返回值,问题就消失了。希望这有助于某人。