从数组中删除(不完全)NSDictionaries的副本

时间:2013-05-08 23:22:05

标签: ios nsmutablearray duplicates nsdictionary

我有许多NSDictionary的NSMutableArray包含像“Title”这样的键。在某些情况下,有重复的字典具有相同的“标题”,但其他键的差异。 如何删除具有相同“标题”键并且只在数组中保留一个字典的字典?

由于

1 个答案:

答案 0 :(得分:6)

使用关键路径“title”上的NSSortDescriptor对数组进行排序。接下来,遍历数组并构建一个新数组:

NSString *lastTitle = nil;
NSMutableArray *result = [NSMutableArray array];

for (NSDictionary *d in array) {
    NSString *testTitle = [d objectForKey:@"title"];
    if (![testTitle isEqualToString:lastTitle]) {
        [result addObject:d];
        lastTitle = testTitle;
    }
}

现在result包含已过滤的列表。

首先对此算法进行排序array非常重要。