21
A
回答
42
你的方法應該工作,但它返回一個NSArray
,而不是NSMutableArray
。您可以使用
[values setArray:[[NSSet setWithArray:values] allObjects]];
將values
設置爲新陣列的內容。
22
請注意,NSSet
方法可能會刪除您在NSArray
中的任何訂單。你可能想要循環你的數組來保持順序。事情是這樣的:
NSMutableArray* uniqueValues = [[NSMutableArray alloc] init];
for(id e in Values)
{
if(![uniqueValues containsObject:e])
{
[uniqueValues addObject:e];
}
}
19
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);
+0
不錯的代碼,非常感謝。 – Felipe 2014-08-04 21:34:27
1
我們可以使用Key值編碼:
uniquearray = [yourarray valueForKeyPath:@"@distinctUnionOfObjects.fieldNameTobeFiltered"];
請參考下面的文章完全理解
此外,如果(X = [值計數])我會怎麼做?謝謝 – user393273 2010-10-07 14:28:32
@ user393273:?? – kennytm 2010-10-07 14:30:44