Ios 基于单对象密钥的排序字典

Ios 基于单对象密钥的排序字典,ios,objective-c,nsarray,nsdictionary,Ios,Objective C,Nsarray,Nsdictionary,我想要一些帮助,根据每个对象ISV键对NSDictionary值的NSArray进行排序 这是我到目前为止创建数组对象的代码,这样您就可以更好地了解我要做的事情 NSArray *combinedKeysArray = [NSArray arrayWithObjects:@"HASM", @"ISL", @"ISV", nil]; valuesCombinedMutableArray = [NSMutableArray arrayWithObjects:[dict objectForKey:@

我想要一些帮助,根据每个对象ISV键对NSDictionary值的NSArray进行排序

这是我到目前为止创建数组对象的代码,这样您就可以更好地了解我要做的事情

NSArray *combinedKeysArray = [NSArray arrayWithObjects:@"HASM", @"ISL", @"ISV", nil];

valuesCombinedMutableArray = [NSMutableArray arrayWithObjects:[dict objectForKey:@"HASM"],
                                                              [dict objectForKey:@"ISL"],
                                                              [dict objectForKey:@"ISV"], 
                                                              nil];

combinedDictionary = [NSDictionary dictionaryWithObjects:valuesCombinedMutableArray
                                                 forKeys:combinedKeysArray];

[unSortedrray addObject:combinedDictionary];

// how do I then sort unSortedArray by the string values in each object ISV key?

任何帮助都将不胜感激。

这可以解决您的问题 如何对包含自定义对象的NSMutableArray进行排序?

您可以使用NSSortDescriptor对NSAREARY进行排序

然后在NSArray中有一个名为
sortedarrayingdescriptor


或者NSComparisonResult有时也会有所帮助

您将无法对
未排序的数组进行排序
,因为其中只有一个元素(即在最后一行代码中,您通过
添加对象
添加单个对象)

也就是说,你也不能对字典进行排序。。b/c字典按定义不排序

您可以按照特定的顺序迭代字典的键,但是,您可以对包含字典键的数组进行排序

NSArray *keys = [theDictionary allKeys];
NSArray *sortedKeys = [keys sortedArrayUsingSelector:@selector(compareMethod:)];

您可以使用-sortedarrayingcomparator:按需要进行排序

[unSortedrray sortedArrayUsingComparator:^NSComparisonResult(NSDictionary *dict1, NSDictionary *dict2) {
    return [[dict1 objectForKey:@"ISV"] localizedCompare:[dict2 objectForKey:@"ISV"]];
}];

我不明白。。在
unSortedarray
中有哪些内容需要迭代。。它只有一个目标!对不起,abbood,我应该解释一下,这是一个for循环,所以有很多对象。我只是想在不使事情复杂化的情况下,让对象类型/结构更容易理解。我想你应该用for循环更新你的问题。。b/c就目前的情况而言,这没有多大意义。好的,我会调查你的链接,让你知道我是怎么做的。