如何按值过滤NSDictionary并从中创建新的NSDictionary?

new*_*ios 1 filtering objective-c nsdictionary ios

我有一个格式yyyyMMdd为的日期列表long.我用 yyyyMMdd 创建了字典yyyyMM(as NSString).我需要过滤NSDictionary(by value)并创建一个新的表单.怎么做?

备注:我认为这是重复的,但我无法弄清楚如何做到这一点.

编辑: 我不明白为什么我的问题被标记为重复,问题解决我的问题是C#?据我所知(我在Objective-C中的知识有限),语法是非常不同的.我也不知道linqlambdas在目标-C中.

Ken*_*ses 6

有很多方法可以做到这一点(包括你认为是noobish的方法).这是一个:

NSArray* keys = [dict keysOfEntriesPassingTest:^BOOL(id key, id obj, BOOL *stop){
    // return YES or NO depending on whether the value (in "obj") passes your test
}];
NSDictionary* newDict = [dict dictionaryWithValuesForKeys:keys];
Run Code Online (Sandbox Code Playgroud)

请注意-dictionaryWithValuesForKeys:,当应用于字典时,可以对以"@"开头的键执行意外操作.这是因为它在以下方面实现-valueForKey:NSDictionary"该方法对待,特别是按键的的实现.对于你所描述的情况无关紧要.