如何删除 nsarray 中的重复项。例如我的数组包含以下数据。我想与相邻日期进行比较以避免重复,但它会出错。
谁能指导我哪里出了问题
日历优先-
(
2010-09-25 17:00:00 GMT,
"AAA",
2010-09-25 17:00:00 GMT,
"AAA",
2010-09-26 17:00:00 GMT,
"BBB",
2010-09-26 17:00:00 GMT,
"BBB",
2010-09-27 17:00:00 GMT,
"CCCC",
2010-09-27 17:00:00 GMT,
"CCC",
2010-09-28 17:00:00 GMT,
"AAA",
2010-09-28 17:00:00 GMT,
"AAA",
2010-09-29 17:00:00 GMT,
"DDDD",
2010-09-29 17:00:00 GMT,
"DDDD",
2010-09-30 17:00:00 GMT,
"BBBB"
)
我的代码
NSArray dates; //dates contain above values
NSMutableArray *temp_date = [[NSMutableArray alloc] init];
for (int i=0; i<[dates count]; i+=2){
BOOL day;
if ([dates count]-2 >i) {
day = [[dates objectAtIndex:i] compare:[dates objectAtIndex:i+2]];
}
if (day) {
[temp_date addObject:[dates objectAtIndex:i]];
[temp_date addObject:[dates objectAtIndex:i+1] ];
}
}
问候, 萨蒂什
最佳答案
你可以使用集合。重复项将在创建后自动删除。
NSArray *cleanedArray = [[NSSet setWithArray:dates] allObjects];
请记住,集合是无序的。
根据布伦特的评论,该问题的最新解决方案将允许您保持元素有序。
[[NSOrderedSet orderedSetWithArray:dates] array]
关于iphone - 删除 nsarray 中的重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3966592/