Я заполняю табличное представление в своем приложении с данными Parse, а затем разрешаю своим пользователям просеивать эти данные с помощью поля поиска. Короче говоря, он отлично работает, но я получаю ошибку A long-running operation is being executed on the main thread
. Я знаю, что это в этой строке NSArray *results = [query findObjects];
, поэтому я решил, что я запустил findObjectsInBackgroundWithBlock
, чтобы попытаться исправить это. Ну, это так, но теперь табличка всегда кажется пустой. Должен ли я не беспокоиться о предупреждении? Если я должен быть, что не так с кодом? Благодаря!Parse filterResults findObjects vs findObjectsInBackgroundWithBlock
поисковых работ, но получает предупреждения:
-(void)filterResults:(NSString *)searchTerm {
[self.searchResults removeAllObjects];
PFQuery *query = [PFQuery queryWithClassName:@"NHLVideos"];
[query whereKey:@"User" containsString:searchTerm];
NSArray *results = [query findObjects];
[self.searchResults addObjectsFromArray:results];
}
Нет Предупредительные Но нет Результаты поиска:
-(void)filterResults:(NSString *)searchTerm {
[self.searchResults removeAllObjects];
PFQuery *query = [PFQuery queryWithClassName:@"NHLVideos"];
[query whereKey:@"User" containsString:searchTerm];
[query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
if (!error){
//No Error
[self.searchResults addObjectsFromArray:objects];
} else {
NSLog(@"Error %@", error);
}
}];
}
Еще раз спасибо!
Благодарим за отзыв. Очень подробный и полезный, хотя, когда я запускаю блок, но добавляю '[self.tableView reloadData];' после того, как 'searchResults' получил объекты, мой tableview по-прежнему не отображает никаких объектов. – Nicholas