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
提取位于 NSDictionary
的 NSArray
中第二个位置的字典,基于 NSString
@"Relation2"
您尝试了多次,最后一次尝试是:
NSPredicate* sortFlames = [NSPredicate predicateWithFormat:@"SELF contains[cd] %@", @"Relation2"];
但是你还是不在,你仍然得到以下错误信息:
你会如何让它发挥作用?
这个谓词应该可以解决问题:
NSPredicate *sortFlames = [NSPredicate predicateWithFormat:@"SELF.%K CONTAINS[cd] %@", kFlameRelation, @"Relation2"];
%K
用于动态 属性 名称,更多信息 here。
假设您具有以下 NSDictionary 对象的 NSArray 结构:
#define kFlameText @"text"
#define kFlameRelation @"relation"
NSArray* data = @[@{kFlameText:@"TextFlame1", kFlameRelation:@"Relation1"}, @{kFlameText:@"TextFlame2", kFlameRelation:@"Relation2"}, @{kFlameText:@"TextFlame3", kFlameRelation:@"Relation3"}}
您想使用 NSPredicate
提取位于 NSDictionary
的 NSArray
中第二个位置的字典,基于 NSString
@"Relation2"
您尝试了多次,最后一次尝试是:
NSPredicate* sortFlames = [NSPredicate predicateWithFormat:@"SELF contains[cd] %@", @"Relation2"];
但是你还是不在,你仍然得到以下错误信息:
你会如何让它发挥作用?
这个谓词应该可以解决问题:
NSPredicate *sortFlames = [NSPredicate predicateWithFormat:@"SELF.%K CONTAINS[cd] %@", kFlameRelation, @"Relation2"];
%K
用于动态 属性 名称,更多信息 here。