1
我試圖讓在後臺的一些數據和刷新的tableview在搜索欄中鍵入的時候,有我當前的代碼:調度不能正常工作
- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText {
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
Games * game = [[Games alloc] init];
NSArray * temp = [game comingSoonWithPlatform:@"pc" header:[game gameHeader] parseLink:[game gameComingSoonListLinkWithPlatform:@"pc"]];
self.searchArray = [temp valueForKey:@"results"];
[self.tableView reloadData];
});
}
我在做什麼錯?如果我在搜索欄中再輸入一個單詞,或者點擊取消按鈕,它會刷新並且數據出現在tableview中。
你應該把'self.searchArray'分配調度到主隊列裏面了。 (這是你在主線程中使用的一個對象,所以你不應該從後臺線程中改變它。同步你的訪問,通過簡單地把這個任務放到你發送回主線程的塊中很容易實現。 )另外,這裏不需要'dispatch_sync'。 'dispatch_async'會更好。 – Rob
非常感謝你們 – pluck