NSMutableDictionary怎么排序

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了NSMutableDictionary怎么排序相关的知识,希望对你有一定的参考价值。

参考技术A 排序NSMutableDictionary中元素:
放在NSMutableDictionary中的元素,进行遍历的顺序和存入的时候的顺序是不一定相同的。
所以,要进行排序输出。比如按照薪水的从低到高进行排序输出:

- (NSArray *)sortBySalaryForDictionary
NSArray *sortedKeys= [_bookDictionary keysSortedByValueUsingSelector:@selector(compareBySalaryForDictionary:)];
return sortedKeys;

在类AddressCard类中,加入compareBySalaryForDictionary方法:

- (NSComparisonResult) compareBySalaryForDictionary:(id)element
if (salary>[element salary])
return NSOrderedDescending;
else if (salary<[element salary])
return NSOrderedAscending;
else
return NSOrderedSame;


可以看到,使用keysSortedByValueUsingSelector方法,返回的是排序后,的键。
那么,在使用时,按照key来进行排序输出:
NSArray *sortedKeys=[myBook sortBySalaryForDictionary];
for (NSString *theKey in sortedKeys)
AddressCard *theCard=[myBook findCardByName:theKey];
[theCard print];
本回答被提问者和网友采纳

对值可能包含重复项的自定义对象的 NSMutableDictionary 进行排序

【中文标题】对值可能包含重复项的自定义对象的 NSMutableDictionary 进行排序【英文标题】:Sorting an NSMutableDictionary of custom objects whose values may contain duplicates 【发布时间】:2013-03-10 11:49:13 【问题描述】:

我有一个“分数”类型的自定义对象的 NSMutableDictionary,它由一个 int 类型的分子变量和一个也是 int 类型的分母变量组成。从 NSMutableDictionary 中提取所有值并放入 NSArray 后,我可以对它们进行排序。然而,我刚刚发现了一个新问题。因为我的 NSMutableDictionary 是“分数”对象的集合,所以这些对象中的一些很可能是彼此重复的,这意味着从原始 NSMutableDictionary 中找到相应的“键”值也会导致问题。我该如何克服呢?我有一个 NSMutableDictionary,其中包含用于键的 NSStrings,以及用于值的自定义“分数”对象。我有一个包含这些自定义“分数”对象的 NSArray,从最大到最小排序。问题是其中一些对象可能是相同的(例如 1/2、1/3、1/3、1/4)。我想知道的是如何为各自的“分数”对象提取每个键,尽管存在重复项?

提前感谢所有回复的人。

【问题讨论】:

如果字典中有两个1/3分数,你的意思是要获取两个(不同的)键吗? 正确。如果我有一个名为“Joe”的键,对应的值为 1/3,另一个名为“Larry”的键也对应的值为 1/3,如果我有一个已排序的 Fraction 对象数组,如何同时拉取键,并将每个键与值 1/3 相关联? @sydefa 然后看看NSDictionary的文档。它有一个名为allKeysForObject:的方法。 @H2CO3:非常感谢。我想我知道如何使用这种方法。如果在迭代数组时特定对象有多个键,那么将返回一个计数大于 1 的数组,这意味着我也只需对其进行迭代。我说的对吗? 是的,正确。 [15 个字符] 【参考方案1】:

要检索特定对象的所有键,请使用 NSDictionaryallKeysForObject: 方法。

【讨论】:

以上是关于NSMutableDictionary怎么排序的主要内容,如果未能解决你的问题,请参考以下文章

对值可能包含重复项的自定义对象的 NSMutableDictionary 进行排序

插入后的NSMutableDictionary重新排序元素[重复]

按字典键的值对包含 NSMutableDictionary 的 NSMutableArray 进行排序

帮助对作为 URL 图像的 NSMutableDictionary 字符串进行排序

将 NSDictionary 键排序为 NSDate

创建一个包含多个 NSMutableDictionary 对象的 NSMutableArray