gpt4 book ai didi

cocoa - 为什么 NSDictionary 在内存中是按字母顺序排列的,但在枚举中却不是?

转载 作者:行者123 更新时间:2023-12-03 16:13:04 24 4
gpt4 key购买 nike

我知道对 NSDictionary 进行排序的正确方法是从键创建一个数组,对数组进行排序,然后枚举该数组并从那里对 NSDictionary 进行操作。我的问题是,对于带有字符串键和值的 NSDictionary *dict,

为什么这是按字母顺序排列的:

NSLog(@"%@", dict);

但这不是:

for (NSString *w in dict)
{
NSLog(@"%@", w);
}

看起来很奇怪......我做错了什么吗?

提前致谢。

最佳答案

这不是“在内存中”—— %@ 导致在 dict 上调用一条消息,并对它进行排序。枚举旨在让您能够以最快的速度、原始方式访问内容。如果需要排序,就必须对其进行排序。

看看这个免费的 Objective-C 排序字典

http://code.google.com/p/cocoa-sorted-dictionary/

关于cocoa - 为什么 NSDictionary 在内存中是按字母顺序排列的,但在枚举中却不是?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4228691/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com