我的filteredContentForSearchText在用户在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];
}
}
在用户按下取消或清除搜索之前,一切都很完美。在该操作发生后,此行不再匹配并填充数组:
self.filteredUsersArray = [NSMutableArray arrayWithArray:[self.usersArray filteredArrayUsingPredicate:predicate]];
有人知道为什么即使条件匹配,在按下取消后数组也会返回零?