我以前认为我可以用一个简单的数组计数来回答这个问题(我的错误)。我试图向用户id显示警告,tableView没有结果。我不能简单地将计数放在viewDidAppear方法中,因为填充JSON和tableView的Web查询需要几秒钟来填充。我不能简单地把它放在:
- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell
forRowAtIndexPath:(NSIndexPath *)indexPath {
if([indexPath row] == ((NSIndexPath*)[[tableView indexPathsForVisibleRows]
lastObject]).row){
//loading complete
}
}
因为如果没有结果,在此方法中不会调用任何内容。有没有人对此有任何建议 - 已经搜索了超过4个小时,几乎把我所有的头发拉了出来。
如果这些问题更适合SO,请随意取消选择 - 这个问题大量的downvotes让我失去了提问的能力......
答案 0 :(得分:2)
NSInteger count = [array count];
答案 1 :(得分:2)
NSlog("数组计数:%d",[数组计数];
这将为您提供控制台中的数组计数。
答案 2 :(得分:1)
您无法检查viewDidAppear
中的行数,因为异步NSURLConnection
用于获取填充表视图的JSON数据。
正确的方法是在使用来自网址请求的响应更新数据源后,在reloadData
中调用connectionDidFinishLoading
。此时,您知道行数是否为零,并且无需等待以使表视图更新完成。