【发布时间】:2013-06-28 00:52:49
【问题描述】:
所以假设我有一个 NSArray 填充了数百个 NSDictionary 对象。
所有字典对象都有一个键 name 的值,但这些值的名称可能在不同的对象中出现多次。
我需要能够过滤这个 NSArray,以便每个唯一的 name 属性只返回一个对象(无论哪个对象,第一个或最后一个,我不在乎)。
这是我已经走了多远,但显然我的 filtered 数组包含所有对象,而不仅仅是唯一的对象。
我在想一定有办法告诉谓词将其结果限制为只有一个/第一个匹配?
NSArray *allObjects = ... // This is my array of NSDictionaries
NSArray *uniqueNames = [allObjects valueForKeyPath:@"@distinctUnionOfObjects.name"];
NSArray *filtered = [allObjects filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"(self.name IN %@)", uniqueNames]];
谢谢!
【问题讨论】:
标签: objective-c nsarray nsdictionary