今天写一个程序,郁闷了半天,结果tableView总是不执行cellForRowAtIndexPath这个方法,一开始真不知道为什么,TableView一直显示不正确,最后调试了半天,终于明白,原来是numberOfRowsInSection返回失败的原因,主要原因是由于在ViewAppDelegate代理中未对数据库进行初始化,原因终于找到了,还是比较高兴!
总结:如果发现TableView总是显示不正确,或没有显示,则需要跟踪看看下面的函数是否返回正确
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section;
1、是否设置代理与数据源
[table setDelegate:self];
[table setDataSource:self];
2、numberOfSectionsInTableView是否设置
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return 1;
}
3、numberOfRowsInSection方法返回值是否正确,如果不正确就不会执行 cellForRowAtIndexPath。
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return 1;
}
4、检查Table是否被其他View遮挡
5、还有可能是autolayout引起的,autolayout约束不对,也会导致tableview显示不出来,
cellForRowAtIndexPath是在显示到界面的时候才调用,正确的设置autolayout就会执行该方法。