Ios NSPredicate用于NSDictionary键数组

Ios NSPredicate用于NSDictionary键数组,ios,nsmutablearray,nsdictionary,nspredicate,Ios,Nsmutablearray,Nsdictionary,Nspredicate,我有 我想用谓词筛选我的字典。我应该如何构建它? 作为一种算法,我想应该是这样的: NSDictionary *myDictionary = @{ @"1":@"Egg Benedict", @"2":@"Mushroom Risotto", @"3":@"Full Breakfast", @"4":@"H

我有

我想用谓词筛选我的字典。我应该如何构建它? 作为一种算法,我想应该是这样的:

NSDictionary *myDictionary = @{ @"1":@"Egg Benedict",
                                @"2":@"Mushroom Risotto",
                                @"3":@"Full Breakfast",
                                @"4":@"Hamburger",
                                @"5":@"Ham and Egg Sandwich",
                                @"6":@"Cream Brelee"};
NSMutableArray *myKeys = [NSMutableArray arrayWithArray:[myDictionary allKeys]];

如何使用谓词字符串实现这一点?

您将
myObjects
作为一个可变的键数组,因此可以过滤该数组。这些键只是字符串。其谓词应为:

[filteredKeys removeAllObjects];
for (NSString *a in myKeys) {
    if ([[myDictionary objectForKey:a] rangeOfString:searchText].location != NSNotFound) {
        [filteredKeys addObject:a];
    }
}
过滤完数组后,可以使用以下工具获取更新的词典:

@"SELF contains[c] %@", searchText
NSDictionary *filtered = [myDictionary dictionaryWithValuesForKeys:myObjects];