在 IOS 中使用 NSPredicate 按数组的一个元素过滤数组的 NSArray

Filter NSArray of Arrays by One Element of Array Using NSPredicate in IOS

可以按如下方式过滤字符串数组:

NSArray *array =  @[@"honda",@"toyota",@"ford"];
NSPredicate *pred = [NSPredicate predicateWithFormat:@"SELF contains[cd] %@",@"ford"];
NSArray *filtered = [array filteredArrayUsingPredicate:pred];

我想通过第一个字符串的值搜索包含两个字符串数组的数组。所以对于:

NSArray *cars = @[@[@"honda",@"accord"],@[@"toyota",@"corolla"],@[@"ford",@"explorer"]];

我想在第一个维度(本田、丰田、福特)中搜索@"ford"

有没有办法告诉谓词我只想搜索数组的第一个属性和 return 个匹配元素?

嗯,这是你需要的 pred。

     NSPredicate *pred = [NSPredicate predicateWithFormat:@"SELF[FIRST] contains[cd] %@", @"ford"];