Uitableview 无法将控制权恢复到UI

Uitableview 无法将控制权恢复到UI,uitableview,nsoperation,nsoperationqueue,Uitableview,Nsoperation,Nsoperationqueue,我有一个应用程序,允许按不同字段(姓名、城市、id)搜索sql db。我尝试将搜索作为队列中的NSO操作来实现。用户界面在第一次搜索之间更新,但由于某些原因,当操作在后台继续时,tableview不会响应触摸。我不确定我错过了什么,或者我是否需要为操作队列定制runloop,如果需要的话,我将非常感谢您的帮助,因为我对这一点还不够熟悉。这是我现有的代码 - (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar { NS

我有一个应用程序,允许按不同字段(姓名、城市、id)搜索sql db。我尝试将搜索作为队列中的NSO操作来实现。用户界面在第一次搜索之间更新,但由于某些原因,当操作在后台继续时,tableview不会响应触摸。我不确定我错过了什么,或者我是否需要为操作队列定制runloop,如果需要的话,我将非常感谢您的帮助,因为我对这一点还不够熟悉。这是我现有的代码

- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar {


    NSString *searchText = searchBar.text;
    [self.searchQueue cancelAllOperations];    //NSOperationQueue
    [self.searchResults startSearching:searchText];
    [self searchID:searchText];

    NSInvocationOperation *operation1 = [[NSInvocationOperation alloc] initWithTarget:self selector:@selector(searchName:) object:searchText];
    [self.searchQueue addOperation:operation1];
    [operation1 release];

                //NSLog(@"Add city search");

    NSInvocationOperation *operation2 = [[NSInvocationOperation alloc] initWithTarget:self selector:@selector(searchCity:) object:searchText];
    [self.searchQueue addOperation:operation2];
    [operation2 release];
}
因此,UI会一直保持到第一次搜索结束(没关系),并刷新表视图。当每个操作完成时,它会刷新tableview,但是在此期间tableview不会响应触摸

任务本身如下所示

-(void) searchCity:(NSString *)City{
    searchObject *myCity = [[searchObject alloc] init];
    self.searchResults.cityResults = [myCity searchCity:City];  //returns NSArray of items

    if ([self.searchResults.cityResults count] == 0) {

        [self.searchResults.cityResults addObject:[NSArray arrayWithObjects:@"Not Found.",@"",@"",@"",@"", nil]];
    }
    [self.searchResults refreshView];
        //NSLog(@"Added from City Search\n%@",self.searchResults.cityResults);
}

好的,我回答了我自己的问题,但是对于下一个朋友

这就像确保在主线程上执行tableview刷新一样简单

[self.tableView performSelectorOnMainThread:@selector(reloadData) withObject:nil waitUntilDone:YES];