NSMutableDictionary和NSArray

时间:2011-03-17 14:12:42

标签: ios nsarray nsdictionary

我有这样的问题。 我有NSMutableDictionary

Object  10          Key  1
Object  20          Key  2
Object  30          Key  3
Object  40          Key  4
Object  50          Key  5

然后我有代码

NSArray*currentArray=[currentMutableDictionary allValues];

当我输出当前数组时,我有 值

20
50
30
10
40

如何以正确的顺序从Dictionary到Array添加obects?

感谢您的回答。

3 个答案:

答案 0 :(得分:2)

试试这个:

NSInteger intSort(id num1, id num2, void *context)
{
    int v1 = [num1 intValue];
    int v2 = [num2 intValue];
    if (v1 < v2)
        return NSOrderedAscending;
    else if (v1 > v2)
        return NSOrderedDescending;
    else
        return NSOrderedSame;
}

 NSArray *currentArray = [[currentMutableDictionary allValues] sortedArrayUsingFunction:intSort context:nil];

假设您的字典中有NSNumber对象,那么应该正确排序数组。

答案 1 :(得分:0)

你可以改为创建一个NSMutableArray并使用addObjectAtIndex方法添加迭代它的对象

答案 2 :(得分:0)

您可以使用keysSortedByValueUsingComparator按排序顺序提取密钥,然后创建一个可变数组以放入值,并使用objectsForKeys:notFoundMarker:提取它们。