Par exemple: J'ai deux NSMutableArray
. Un @[1,2,3,4,5,6,7]
. D'autres ont des objects comme
@[ @{@idObjectToSearch":1, @"name":@"aaaaa", @"surname": @"bbbbb"}, @{@idObjectToSearch":2, @"name":@"aaaaa", @"surname": @"ccccc"}, ... @{@idObjectToSearch":100, @"name":@"aaaaa", @"surname": @"cccdcd"} ];
Alors, comment puis-je extraire les objects nécessaires à partir du deuxième tableau de manière plus efficace?
Vous devez utiliser NSPredicate
avec votre deuxième tableau.
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"idObjectToSearch IN %@", firstArray]; //In above predicate instead of passing `1` you need to pass object from first array that you want. NSArray *filterArray = [secondArray filteredArrayUsingPredicate:predicate]; //Now access Array objects if (filterArray.count > 0) { NSLog(@"%@",filterArray); }
Tu peux le faire comme ça
NSMutableArray * arrSorted = [NSMutableArray new]; for(int i=0;i<arr.count;i++) { NSPredicate *predicate = [NSPredicate predicateWithFormat:@"idObjectToSearch == %@", firstArray[i]]; NSUInteger index = [secondArray indexOfObjectPassingTest:^(id obj, NSUInteger idx, BOOL *stop) { return [predicate evaluateWithObject:obj]; }]; if (index != NSNotFound) { [arrSorted addObject:[arrM objectAtIndex:index]]; } }
arrSorted
contiendra vos données sortingées