我有一个包含很多条目的 NSArray。但其中一些是两次。而且我希望每个条目在数组中只有一次。
有人知道我该怎么做吗?
这就是我尝试过的方式:
NSSet *newsSet = [NSSet setWithArray:news];
newsOrte = [newsSet allObject];
试试这个方法
NSArray *array=[[NSMutableArray alloc]initWithObjects:@"A",@"B",@"A",@"C",@"A", nil];
NSMutableArray *arr=[NSMutableArray new];
for(id obj in array){
if (![arr containsObject:obj]) {
[arr addObject:obj];
}
}
array=arr;
NSLog(@"==> %@",array);
你也可以这样做:
NSArray *array=[[NSMutableArray alloc]initWithObjects:@"A",@"B",@"A",@"C",@"A", nil];
NSMutableDictionary *dict=[[NSMutableDictionary alloc]initWithObjects:array forKeys:array];
array=[dict allKeys];
NSLog(@"==> %@",array);
输出 :
==> (
A,
B,
C
)
这是代码
NSArray* originalArray = ... // However you fetch it
NSMutableSet* existingNames = [NSMutableSet set];
NSMutableArray* filteredArray = [NSMutableArray array];
for (id object in originalArray) {
if (![existingNames containsObject:[object name]]) {
[existingNames addObject:[object name]];
[filteredArray addObject:object];
}
}
originalArray = [NSArray arrayWithArray:filteredArray];
希望对你有帮助。。