searchResultsTableView显示两个相同的单元格

我有一个search栏,从一个分析服务器中提取数据。 我注意到,有时tableView将显示同一单元格的两倍,而我正在打字。

在这里输入图像说明在这里输入图像说明

如果我继续键入它将只显示其中一个单元格。 我注意到,如果我慢慢地input,只有一个单元显示整个时间(应该是这样)。 也许parsing查询返回太快,为了正确的重新加载tableView?

任何你可以解决这个问题的光将不胜感激! 谢谢!

编辑

- (void)filterContentForSearchText:(NSString*)searchText scope:(NSString*)scope { [self.searchResult removeAllObjects]; [self.queryArray removeAllObjects]; NSPredicate *resultPredicate = [NSPredicate predicateWithFormat:@"name contains[c] %@", searchText]; PFQuery *query = [PFUser query]; [query whereKey:@"fullName" containsString:searchText]; [query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) { if (!error) { for (PFObject *pfObj in objects) { NSDictionary *person = [[NSDictionary alloc] initWithObjects:@[pfObj[@"fullName"], pfObj.objectId] forKeys:@[@"name", @"objectId"]]; [self.queryArray addObject:person]; } self.searchResult = [NSMutableArray arrayWithArray: [self.contacts filteredArrayUsingPredicate:resultPredicate]]; [self.searchResult addObjectsFromArray:self.queryArray]; NSLog(@"query array %@", self.queryArray); NSLog(@"%@", self.searchResult); [self.searchDisplayController.searchResultsTableView reloadData]; } else { NSLog(@"%@", error); } }]; [self.searchDisplayController.searchResultsTableView reloadData]; } 

在更改文本字段值时,将数组设置为零。 我的意思是说,每次你打电话给一个函数,你将得到sorting的数组值。 所以在打电话之前,不要这么做。 因为它存储了以前search的数据,所以你得到两次相同的数据。 我有同样的问题,花了我一个时间来解决这个问题:D