iphone - 删除 nsarray 中的重复项

标签 iphone nsarray duplicates

如何删除 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/

相关文章:

ios - 将 NSArray 拆分为固定大小,其余部分

ios - 将 block 中异步接收的 JSON 对象传递给实例变量 - 在 iOS6 上使用 AFNetworking

c - 为什么这个循环每次循环打印相同的值?

php - 如何删除重复项 php array_unique 不工作

Ios确实收到内存警告和应用程序崩溃

iphone - 填充 UILabel 文本而不链接 IBOutlet

iphone - NSArray 和 NSMutableArray 的区别

iphone - MKAnnotationView绘制矩形: not getting called

iphone - 如何在 MFMailComposeViewController 中设置标题?

mysql - 如果其他值重复,如何更新 MySQL 表中的值?