我是一個新手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方法 –