排序NSDictionary

时间:2013-10-13 11:34:38

标签: objective-c nsdictionary

我有 NSDictionary ,其中包含:

Key -> Value:
@"home" -> @"blue"
@"family" -> @"green"
@"work" -> @"red"

已更新

互联网上没有人可以对NSDictionary进行排序:c

这段代码帮助我了解了价值观。

sortedArray = [anArray sortedArrayUsingSelector:@selector(localizedCaseInsensitiveCompare:)];

但我失去了键和值之间的关系。如果任何人都可以编写函数,它接受NSDictionary并生成两个NSArray,这些NSArray相关,其中一个数组按照NSDictionary的值排序如下:

(unsorted)
    Key -> Value:
    @"work" -> @"red"
    @"home" -> @"blue"
    @"family" -> @"green"

转换为:

Arrays, which keep relationship by index of item and one of them (values of NSDictionary) sorted

    ArrayOfKeys = {@"home",@"family",@"work"}
    ArrayOfValues = {@"blue", @"green", @"red"} -- this one sorted like alphabet

3 个答案:

答案 0 :(得分:5)

您可以使用keysSortedByValueUsingComparatorkeysSortedByValueWithOptionskeysSortedByValueUsingSelector等方法按排序顺序访问密钥。但根据定义,NSDictionary本身没有概念或顺序。

答案 1 :(得分:1)

您无法对NSDictionary进行排序。如果需要,可以创建一个对象来保存其中的键和值,然后添加到数组并使用排序描述符对键字段进行排序。

答案 2 :(得分:0)

NSDictionary不是有序集合,但您可以使用keysSortedByValueUsingComparator,keysSortedByValueUsingSelector等比较器对其键进行排序。