从数组中删除(不准确)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 获取所有值? [复制]