所以假设我有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]];
谢谢!