【问题标题】:Not getting control back to UI无法将控制权交还给 UI
【发布时间】:2012-02-12 14:18:49
【问题描述】:

我有一个允许通过各种字段(名称、城市、id)搜索 sql db 的应用程序我尝试将搜索实现为队列中的 NSOperations。并且 ui 在第一次搜索之间更新,但由于某种原因,当操作在后台继续时,tableview 不会响应触摸。不知道我错过了什么,或者我是否需要为操作队列自定义运行循环,如果需要的话,我会很感激一些帮助,因为我不太熟悉这是我现有的代码

- (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);
}

【问题讨论】:

    标签: uitableview nsoperation nsoperationqueue


    【解决方案1】:

    好的,我回答了我自己的问题,但对于接下来的人......

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

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

    【讨论】:

      猜你喜欢
      • 2020-04-18
      • 2019-04-22
      • 1970-01-01
      • 1970-01-01
      • 2012-10-24
      • 2016-12-15
      • 1970-01-01
      • 1970-01-01
      • 2016-02-25
      相关资源
      最近更新 更多