我有一系列词典。
每个字典都有一个键“颜色”,颜色的可能值是“红色”,“绿色”,“蓝色”,“黄色”。 在数组中,字典按照以下顺序添加:在获取键“颜色”的值时,我们得到“黄色”,“绿色”,“红色”和“蓝色”。
修改:
I have an array objectsArray of dictionaries.
for(int i=0,i<[objectsArray count];i++)
{
NSDictionary *dict = [objectsArray objectAtIndex:i];
NSLog(@"color: %@\n",[dict valueForKey:@"color"]); //
}
Output:
yellow
green
red
blue
I want output to be
red
green
blue
yellow
我该怎么办?有什么建议。 提前完成。
答案 0 :(得分:2)
从我自己的问题中回答“偷走”这个问题:
如果您的数组是可变的,则可以使用-sortUsing ...方法对其进行排序。如果没有,您可以使用-sortedArrayUsing ...方法创建一个新的排序数组。例如,有-sortUsingComparator:和-sortedArrayUsingComparator:将比较器块作为参数的方法。您只需提供一个使用自定义排序顺序比较两个对象的块,如下所示:
[myArray sortUsingComparator:^(id firstObject, id secondObject) {
NSString *firstKey = [firstObject valueForKey:@"color"];
NSString *secondKey = [secondObject valueForKey:@"color"];
if ([firstKey stringEqual:@"red"] || [lastKey stringEqual:@"green"])
return NSOrderedAscending;
else if ([firstKey stringEqual:secondKey])
return NSOrderedSame;
else
return NSOrderedDescending; }];
在集合编程主题文档中,对排序数组进行了详尽的讨论,并附有示例。
答案 1 :(得分:1)
NSMutableArray *newArray = [objectsArray mutableCopy]
[newArray exchangeObjectAtIndex:3 withObjectAtIndex:4];
[newArray exchangeObjectAtIndex:0 withObjectAtIndex:4];
[objectsArray release];
objectsArray = newArray;
希望这会有所帮助!
答案 2 :(得分:0)
您可以通过各种排序方法重新排列数组中的对象,查看class reference了解详细信息。
由于