NSDictionary 的 NSArray 上的 NSPredicate

NSPredicate on NSArray of NSDictionary

假设您具有以下 NSDictionary 对象的 NSArray 结构:

#define kFlameText @"text"
#define kFlameRelation @"relation"


NSArray* data = @[@{kFlameText:@"TextFlame1", kFlameRelation:@"Relation1"}, @{kFlameText:@"TextFlame2", kFlameRelation:@"Relation2"}, @{kFlameText:@"TextFlame3", kFlameRelation:@"Relation3"}}

您想使用 NSPredicate 提取位于 NSDictionaryNSArray 中第二个位置的字典,基于 NSString @"Relation2"

您尝试了多次,最后一次尝试是:

NSPredicate* sortFlames = [NSPredicate predicateWithFormat:@"SELF contains[cd] %@", @"Relation2"];

但是你还是不在,你仍然得到以下错误信息:

你会如何让它发挥作用?

这个谓词应该可以解决问题:

NSPredicate *sortFlames = [NSPredicate predicateWithFormat:@"SELF.%K CONTAINS[cd] %@", kFlameRelation, @"Relation2"];

%K 用于动态 属性 名称,更多信息 here