从数组中删除(不准确)NSDictionaries 的重复项

Posted

技术标签:

【中文标题】从数组中删除(不准确)NSDictionaries 的重复项【英文标题】:Remove (not exact) duplicates of NSDictionaries from array 【发布时间】:2013-05-08 23:22:04 【问题描述】:

我有一个包含许多 NSDictionaries 的 NSMutableArray,其中包含“Title”之类的键。在某些情况下,存在具有相同“标题”但其他键不同的字典副本。 如何删除具有相同“标题”键的字典并在数组中只保留一个?

谢谢

【问题讨论】:

【参考方案1】:

使用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 进行排序以使该算法起作用,这一点很重要。

【讨论】:

以上是关于从数组中删除(不准确)NSDictionaries 的重复项的主要内容,如果未能解决你的问题,请参考以下文章

基于单独数组中的对象过滤 NSDictionaries 数组

删除 NSDictionaries 中超过 100.000 公里的键和值

如何将带有对象数组的 json 字符串转换为带有 nsdictionaries 的 nsarray - IOS

如何从 NSDictionary 中的 NSDictionaries 获取所有值? [复制]

如何在一个文件中保存和检索多个 NSDictionaries

如何在目标 c 中向 NSArray 添加多个 NSDictionaries?