筛选数组
创建筛选谓词
NSString *searchString = self.searchTF.text;
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"name CONTAINS [cd] %@", searchString];
使用谓词筛选数组
NSArray *array = [allDataArray filteredArrayUsingPredicate:predicate];
排序
array = [array sortedArrayUsingComparator:^NSComparisonResult (id _Nonnull obj1, id _Nonnull obj2) {
return [self sortWithSearchString:searchString string1:newObj1.name string2:newObj2.name];
}];
- (NSComparisonResult)sortWithSearchString:(NSString *)searchString string1:(NSString *)string1 string2:(NSString *)string2
{
searchString = [searchString lowercaseString];
string1 = [string1 lowercaseString];
string2 = [string2 lowercaseString];
NSInteger index1 = [string1 rangeOfString:searchString].location;
NSInteger index2 = [string2 rangeOfString:searchString].location;
if (index1 < index2) {
return NSOrderedAscending;
} else if (index1 > index2) {
return NSOrderedDescending;
} else {
return [string1 compare:string2];
}
}