Mac*_*wic 21 uitableview reloaddata ios
我有一个简单的应用程序,当用户键入时,可以用XML下载搜索结果UISearchBar.下载+解析是线程化的,一旦完成它就会触发一个NSNotification告诉ViewController的表视图[tableView reloadData];
以下是在结果出现时接收通知的代码:
- (void)receivedResults:(id)notification {
results = [notification object];
DLog(@"Received %i results",[results count]);
[[self tableView] reloadData];
}
Run Code Online (Sandbox Code Playgroud)
我得到日志输出"Received 4 results",但表格视图不会重新加载数据,直到我滚动/拖动几个像素.我正在使用内置的UITableViewCellStyleSubtitle单元格样式,而且我不会改变高度或者用表视图来表达任何奇特的东西.
我究竟做错了什么?
The*_*der 66
我能够得到同样的工作.但问题是需要在主线程上调用重载数据.
dispatch_async(dispatch_get_main_queue(), ^{
[self.tableView reloadData];
});
Run Code Online (Sandbox Code Playgroud)
我认为这比performSelectorOnMainThread选项更实用
And*_*rew 34
呼叫
[self.tableView performSelectorOnMainThread:@selector(reloadData) withObject:nil waitUntilDone:NO];
Run Code Online (Sandbox Code Playgroud)
代替
[self.tableview reloadData]
Run Code Online (Sandbox Code Playgroud)