#ios #cocoa-touch #cocoa #nsarray #uisearchbar
#iOS #cocoa-touch #какао #nsarray #uisearchbar
Вопрос:
Мой filteredContentForSearchText игнорирует предикат после того, как пользователь нажимает cancel на панели поиска в iOS.
Я фильтрую массив с помощью uisearchbar следующим методом:
#pragma mark Content Filtering
-(void)filterContentForSearchText:(NSString*)searchText scope:(NSString*)scope {
[self.filteredUsersArray removeAllObjects];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF.fullName contains[c] %@",searchText];
self.filteredUsersArray = [NSMutableArray arrayWithArray:[self.usersArray filteredArrayUsingPredicate:predicate]];
if ([self.filteredUsersArray count] > 0) {
}else{
User *tempUser = self.addedUsersArray[0];
tempUser.fullName = [NSString stringWithFormat:@"Search for '%@'", searchText];
[self.filteredUsersArray addObject:tempUser];
}
}
Все работает идеально, пока пользователь не нажмет cancel или не очистит поиск. После этого действия эта строка больше не соответствует и заполняет массив:
self.filteredUsersArray = [NSMutableArray arrayWithArray:[self.usersArray filteredArrayUsingPredicate:predicate]];
Кто-нибудь знает, почему массив возвращает нулевое значение после нажатия cancel, даже если критерии совпадают?
Комментарии:
1. это ошибка iOS???
2. Можете ли вы показать нам сбой, который вы получаете?