gpt4 book ai didi

objective-c - 使用不同的键但相同类型的值对 NSDictionary 的 NSArray 进行排序的最佳方法是什么

转载 作者:搜寻专家 更新时间:2023-10-30 19:57:51 24 4
gpt4 key购买 nike

我正在努力寻找一种像这样对 NSArray 进行排序的好方法:

它是一个 NSDictionary 数组,我用它来跟踪长字符串中每个单词的出现。所以它可能看起来有点像这样:

[{"hello", 5}, {"world", 10}, {"this", 1}, {"that", 3}]

现在我想按值对这个 NSDictionary 进行排序,这样它看起来像这样:

[{"world", 10}, {"hello", 5}, {"that", 3}, {"this", 1}]

我查看了 NSSortDescriptor 和 sortDescriptors 的 initWithKey 方法,但它要求键的名称相同,这不适用于我的案例。

在这种情况下,您建议我使用什么?提前致谢!

最佳答案

也许不是有史以来最有效的方法,但这样就可以了

NSArray * d = @[@{@"world": @10}, @{@"hello": @5}, @{@"that": @3}, @{@"this": @1}];
[d sortedArrayUsingComparator:^NSComparisonResult(NSDictionary * obj1, NSDictionary * obj2) {
NSNumber * v1 = obj1[[obj1 allKeys][0]];
NSNumber * v2 = obj2[[obj2 allKeys][0]];
return [v1 compare:v2];
}];

反正数据组织不太适合做任务。由于内部数据结构是一个字典,收集值是相当麻烦的。你可以考虑把里面的一个做成数组。

关于objective-c - 使用不同的键但相同类型的值对 NSDictionary 的 NSArray 进行排序的最佳方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17386370/

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