NSMutableDictionary 和 NSArray

发布于 2024-10-24 12:41:56 字数 407 浏览 3 评论 0原文

我有这样的问题。 我有 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

如何以正确的顺序将对象从字典添加到数组?

感谢您的回答。

I have a such problem.
I have NSMutableDictionary

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

Then I have code

NSArray*currentArray=[currentMutableDictionary allValues];

When I output current Array I have
Value

20
50
30
10
40

How I can add obects from Dictionary to Array in the correct order ?

Thanks for your answers.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

我不会写诗 2024-10-31 12:41:56

试试这个:

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 对象,这应该正确地对数组进行排序。

Try this out:

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];

That should sort the array properly, assuming you have NSNumber objects in your dictionary.

青春有你 2024-10-31 12:41:56

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

you can make an NSMutableArray instead and add the objects iterating it an using addObjectAtIndex method

唯憾梦倾城 2024-10-31 12:41:56

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

You can extract the keys in sorted order using keysSortedByValueUsingComparator, then make a mutable array to put the values in, and extract them using objectsForKeys:notFoundMarker:.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文