ios - NSDictionary 的 NSArray 上的 NSPredicate

标签 ios objective-c nsarray nsdictionary nspredicate

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

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


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

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

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

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

但是你还是不在,你还是得到如下错误信息:

Error message while testing NSPredicate

你会如何让它发挥作用?

最佳答案

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

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

%K 是动态属性名,更多信息 here .

关于ios - NSDictionary 的 NSArray 上的 NSPredicate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33291316/

相关文章:

objective-c - 第二次调用 loadView 时,iOS 5 不会自动旋转 View

ios - 没有 AdSupport.framework 的 Google Analytics 链接器错误

objective-c - 了解 (id)sender

iphone - 如何在代码中而不是 Interface Builder 中设置 didEndOnExit?

ios - 错误 : `call FirebaseApp.configure() before using Firestore`

ios - 无法初始化 AVAudioRecorder : (null)

ios - (ObjC -> Swift) 转换函数 "init"& "textureNamed"

ios - 比较JSON服务响应中的键

objective-c - NSArray 和 NIL 值。如何返回数组中非 NIL 值的数字 ("count"

objective-c - Objective C 中使用正则表达式和 nsarray 进行字符串操作以及可变字符串