У меня есть панель поиска, которая извлекает данные с сервера Parse. Я заметил, что иногда tableView будет отображать двойную ячейку одной ячейки во время ввода.searchResultsTableView отображает две одинаковые ячейки
Если я продолжаю набирать его будет отображать только одну из ячеек. Я заметил, что если я печатаю медленно, только одна ячейка отображает все время (как и должно). Возможно, запросы Parse возвращаются слишком быстро для правильной перезагрузки tableView?
Любой свет, который вы, ребята, можете пролить на эту проблему, будет очень благодарен! Спасибо!
EDIT
- (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];
}
Вы делаете два отдельных массива для поиска? –
PLZ поделитесь поисковым кодом –
Я обновил сообщение с моим фильтромContentForSearchText. Есть что-нибудь еще, что вы хотели бы увидеть? @PallaviLigade –