【发布时间】:2013-04-20 01:15:57
【问题描述】:
我正在尝试从排序后的数组中删除任何重复项...我想我可以使用我的另一个问题中的示例来做到这一点,但结果证明它甚至没有接近工作。
这是一个非常可怕的尝试,但这是我能弄清楚如何比较 NSMutableArray 中单个项目(NSDictionary)的两个元素的唯一方法。
这是我的代码示例
我目前有一个排序数组
NSArray *duplicatesRemovedArray = [sortedArray sortedArrayUsingComparator:^NSComparisonResult(id a, id b) {
NSDictionary *dictA = a;
NSDictionary *dictB = b;
NSString *startYear1 = dictA[kStartYear];
NSString *finishYear1 = dictA[kFinishYear];
NSString *allYear1 = [NSString stringWithFormat:@"%@%@",startYear1, finishYear1];
NSString *startYear2 = dictB[kStartYear];
NSString *finishYear2 = dictB[kFinishYear];
NSString *allYear2 = [NSString stringWithFormat:@"%@%@",startYear2, finishYear2];
return [allYear1 compare:allYear2];
}];
如果有人对如何创建我所追求的独特项目的 NSArray 有任何想法,如果您能给我任何建议,将不胜感激的代码示例
更新:我应该指出我的 NSDictionary 中有另一个元素 身份证...
所以我不能只比较您列出的示例中的对象...这是我的疏忽。如此有效地对象看起来像这样
ID: 1234
STARTYEAR: 1999
FINISHYEAR: 2000
所以我需要一些帮助来删除 StartYear 和 FinishYear 与其他对象开始和结束年份匹配的对象。
【问题讨论】:
-
@JoshCaswell 我遇到的问题是每个 NSDictionary 对象都有两个元素。我需要将我的方法建立在这个事实的基础上。如果不是所有的例子,你的大多数例子只是显示数组单个元素.. 换句话说,一个日期值而不是检查每个对象的两个日期值
标签: objective-c nsarray nsdictionary