多くのエントリを持つ NSArray があります。しかし、それらのいくつかは2倍です。そして、すべてのエントリが配列内で 1 回だけであることを望みます。
誰かがこれを行う方法を考えていますか?
これは私が試した方法です:
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];
それがあなたを助けることを願っています..