使用 NSPredicate 按值过滤 NSDictionary

Posted

技术标签:

【中文标题】使用 NSPredicate 按值过滤 NSDictionary【英文标题】:Filter NSDictionary by value using NSPredicate 【发布时间】:2014-03-26 07:39:53 【问题描述】:

我有一个像这样的NSDictionary


    1 = A;
    11 = AB;
    19 = ABC;
    2 = ABCD;
    3 = ABCDE;
    4 = ABCDEF;
    5 = ABCDEFG;
    6 = ABCDEFGH;
    7 = ABCDEFGHI;
    9 = ABCDEFGHIJ;

现在我想用谓词过滤字典以返回值开始的数组,例如与“ABCD”。 Key 是一个 ID(字符串),Value 是字符串类型。

所以结果应该是


    ABCD;
    ABCDE;
    ABCDEF;
    ABCDEFG;
    ABCDEFGH;
    ABCDEFGHI;
    ABCDEFGHIJ;

NSPredicate 的外观如何?

【问题讨论】:

【参考方案1】:

谓词如下所示:

NSPredicate * predicate = [NSPredicate predicateWithFormat:@"SELF BEGINSWITH[c] %@", @"ABCD"];

【讨论】:

感谢您的快速答复。有没有办法得到一个过滤的字典,而不是一个数组? 这是另一个问题:) 我认为只有通过遍历所有没有谓词的元素才能实现

以上是关于使用 NSPredicate 按值过滤 NSDictionary的主要内容,如果未能解决你的问题,请参考以下文章

使用 nspredicate 进行字典过滤

使用 NSPredicate 过滤 EKEvent

NSPredicate的使用

使用 NSPredicate 过滤文件路径

使用 NSPredicate 过滤 - 数据类型?

如何使用 NSPredicate 过滤 NSArray