0

我得到了NSDictionary对,如:

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

更新

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

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

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

但是我失去了键和值之间的关系。如果有人可以编写函数,该函数采用 NSDictionary 并创建两个 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
4

3 回答 3

5

您可以使用keysSortedByValueUsingComparator,keysSortedByValueWithOptions或等方法按排序顺序访问键keysSortedByValueUsingSelector。但是根据定义, aNSDictionary本身没有概念或顺序。

于 2013-10-13T12:35:40.280 回答
1

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

于 2013-10-13T12:29:42.570 回答
0

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

于 2015-03-31T01:09:46.700 回答