作者leondemon (狗狗)
看板MacDev
标题Re: [问题] Core Data Fetch与GCD的问题
时间Tue Sep 11 17:35:38 2012
1F:推 dryman:跟view相关的要丢到main queue里面做 09/11 06:50
2F:→ dryman:你可以把tableView reloadData那行用dispatch_async 09/11 06:51
3F:→ dryman:dispatch_get_main_queue() 包起来 09/11 06:51
谢谢D大帮我解决了 App开启时load data的问题
但是目前遇到了另外一个状况:
我做了一个字典的功能 并用searchBar可以搜寻单字 然後如法炮制(如下)
// UISearchBarDelegate method
- (void)searchBar:(UISearchBar *)searchBar
textDidChange:(NSString *)searchText
{
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)
, ^{
NSPredicate *predicate = [NSPredicate predicateWithFormat:
@"word BEGINSWITH %@", searchText];
self.searchObjects = [self.fetchedResultsController.fetchedObjects
filteredArrayUsingPredicate:predicate];
dispatch_async(dispatch_get_main_queue(), ^{
[self.tableView reloadData];
});
});
}
结果是cell.textLabel.text的资料是有更新
但画面上的table cell却没有更新
变成要手动卷动table view时cell的textLabel才会更新
当我打"b"的时候 tableView第一个cell 依然是A开头的字
当我打"bo"的时候 tableView第一个cell 是b
当我打"boy"的时候 tableView第一个cell 指出现是bo
也就都是上一个搜寻的结果
请问这个问题要怎麽解决呢?
=====
自问自答:
我忘了实际显示的table不是原来的那一个
应该是searchDisplayController.searchResultsTableView 的这个tableView做reload
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 42.72.144.20
※ 编辑: leondemon 来自: 42.72.144.20 (09/11 17:40)
※ 编辑: leondemon 来自: 42.72.144.20 (09/11 17:59)