私はこれをやってみました:Values = [[NSSet setWithArray:Values] allObjects];
そして成功なし、
ありがとう
NSArray
の代わりにNSMutableArray
を返すことを除いて、メソッドは機能するはずです。あなたが使うことができます
[values setArray:[[NSSet setWithArray:values] allObjects]];
values
を新しい配列のコンテンツに設定します。
NSSet
メソッドは、NSArray
にあるすべての注文を削除する可能性があることに注意してください。順序を維持するために、配列をループすることをお勧めします。このようなもの:
NSMutableArray* uniqueValues = [[NSMutableArray alloc] init];
for(id e in Values)
{
if(![uniqueValues containsObject:e])
{
[uniqueValues addObject:e];
}
}
NSMutableArray* myArray =
[[NSMutableArray alloc]initWithObjects:
@"red",@"blue",@"red",@"green",@"yellow", @"33", @"33",@"red", @"123", @"123",nil];
NSOrderedSet *mySet = [[NSOrderedSet alloc] initWithArray:myArray];
myArray = [[NSMutableArray alloc] initWithArray:[mySet array]];
NSLog(@"%@",myArray);
Key ValueCodingを使用できます。
uniquearray = [yourarray valueForKeyPath:@"@distinctUnionOfObjects.fieldNameTobeFiltered"];
完全に理解するには、以下の記事を参照してください