Вы можете просто использовать NSPredicate , чтобы отфильтровать результаты поиска по фактическому массиву результатов:
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF.property_name contains[c] %@",stringToSearch];
filteredPendingList = [NSMutableArray arrayWithArray:[mainArr filteredArrayUsingPredicate:predicate]];
NSSortDescriptor *sortDescriptor;
sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"property_name"
ascending:YES];
NSArray *sortDescriptors = [NSArray arrayWithObject:sortDescriptor];
NSArray *sortedArray;
sortedArray = [filteredPendingList sortedArrayUsingDescriptors:sortDescriptors];
Таким образом, вы получите отсортированный массив с отфильтрованным результатом. property_name выше - это имя переменной внутри вашего объекта, для которой вы хотите выполнить операцию поиска. Надеюсь, это поможет вам.