sat*_*mar 12 iphone duplicates nsarray
如何在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"
)
Run Code Online (Sandbox Code Playgroud)
我的代码
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] ];
}
}
Run Code Online (Sandbox Code Playgroud)
问候,sathish
Jos*_*ura 47
你可以使用套装.创建后将自动删除重复项.
NSArray *cleanedArray = [[NSSet setWithArray:dates] allObjects];
Run Code Online (Sandbox Code Playgroud)
请记住,集合是无序的.
根据布伦特的评论,这个问题的最新解决方案将允许您按顺序保持元素.
[[NSOrderedSet orderedSetWithArray:dates] array]
Run Code Online (Sandbox Code Playgroud)
最干净的方式
NSArray *noDuplicatesDates = [dates valueForKeyPath:@"@distinctUnionOfObjects.self"];
归档时间: |
|
查看次数: |
15072 次 |
最近记录: |