我是一个新手iOS程序员,在我的第一个应用程序工作,我遇到了一个小问题。我想在网上下载一些数据后更新我的tableView,并有其控制器中下面的代码这样做:reloadData不刷新屏幕
-(void)storeChanged:(EventsStore *)store
{
NSLog(@"Store changed!");
NSLog(@"tableview is %@", self.tableView);
self.openSectionIndex = NSNotFound;
NSLog(@"event count: %i", [[[EventsStore sharedStore] allEvents] count]);
[self.tableView reloadData];
}
(注:该店铺为单身,所以没有必要参数)
当它运行我得到以下输出:
2015-10-19 15:12:42.487 Appname[3366:69443] Store changed!
2015-10-19 15:12:42.487 Appname[3366:69443] tableview is <UITableView: 0xc00e000; frame = (0 0; 320 480); clipsToBounds = YES; autoresize = RM+BM; gestureRecognizers = <NSArray: 0xb114d30>; layer = <CALayer: 0xb112f30>; contentOffset: {0, -64}; contentSize: {320, 0}>
2015-10-19 15:12:42.487 Appname[3366:69443] event count: 12
但保持的tableView空,直到我尝试滚动,此时它正确地显示一切。
tableViewController是一个自定义类(扩展UITableViewController),显示在导航控制器中,两者都在故事板内。据我所知,所有的网点都已经设定好了,但是如果你有一个关于如何排除故障的方法,请告诉我。
编辑:我只是有一个想法可能是什么原因:这个函数是从一个completionBlock内部调用的。如果这就是原因,有人知道如何规避它吗?
你确定这是从主线程调用? –
没有足够的信息。数据如何下载?什么时候调用storeChanged?你的numberOfRowsForSection表视图方法是什么样的? (显示代码)也显示你的numberOfSectionsInTableView方法。 –
可以在节中显示您的numberOfRows方法 –