Obj-C - 用另一个数组过滤 NSMutableArray?
Obj-C - Filter NSMutableArray with another array?
我有一个 NSMutableArray (self.allPeople) 包含许多字典(人)。也就是说,我还有一个包含一系列数字的 NSMutableArray (self.participants):
self.participants
Here they are: (
179,
125,
231
)
我想要过滤器 self.allPeople,并且只有 return 个字典,其中键“nid”等于 self.participants.
中包含的数字之一
如何使用 self.participants 中的每个数字过滤 self.allPeople (valueForKey:@"nid")?
如果我只想按单个字符串值进行过滤,此方法有效,但我需要它来过滤所有数字:
NSPredicate *p = [NSPredicate predicateWithFormat:@"nid CONTAINS[cd] %@", @"179"];
self.results = [self.allPeople filteredArrayUsingPredicate:p];
数组只用IN
,像这样:
NSArray<NSDictionary<NSString *, NSNumber *> *> *allPeople = @[
@{ @"nid": @120 },
@{ @"nid": @121 },
@{ @"nid": @122 },
@{ @"nid": @123 },
];
NSArray<NSNumber *> *participants = @[ @120, @123 ];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"nid IN %@", participants];
NSArray<NSDictionary<NSString *, NSNumber *> *> *results = [allPeople filteredArrayUsingPredicate:predicate];
NSLog(@"RESULTS: %@", results);
我有一个 NSMutableArray (self.allPeople) 包含许多字典(人)。也就是说,我还有一个包含一系列数字的 NSMutableArray (self.participants):
self.participants
Here they are: (
179,
125,
231
)
我想要过滤器 self.allPeople,并且只有 return 个字典,其中键“nid”等于 self.participants.
中包含的数字之一如何使用 self.participants 中的每个数字过滤 self.allPeople (valueForKey:@"nid")?
如果我只想按单个字符串值进行过滤,此方法有效,但我需要它来过滤所有数字:
NSPredicate *p = [NSPredicate predicateWithFormat:@"nid CONTAINS[cd] %@", @"179"];
self.results = [self.allPeople filteredArrayUsingPredicate:p];
数组只用IN
,像这样:
NSArray<NSDictionary<NSString *, NSNumber *> *> *allPeople = @[
@{ @"nid": @120 },
@{ @"nid": @121 },
@{ @"nid": @122 },
@{ @"nid": @123 },
];
NSArray<NSNumber *> *participants = @[ @120, @123 ];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"nid IN %@", participants];
NSArray<NSDictionary<NSString *, NSNumber *> *> *results = [allPeople filteredArrayUsingPredicate:predicate];
NSLog(@"RESULTS: %@", results);