我有两个NSMutableDictionary对象。 Dict 1的密钥少于dict 2,但两个字典共享的密钥在语法上是相同的。我想用dict 2中的那些键的值重新排序dict 1.Dict 2中的值是整数。
有人可以让我开始吗?
编辑: 我有一个键数组和一个带键和数值的字典。字典中的键和值多于数组中的键/对象。我想通过字典中这些键的相应值重新排序数组。
对于问题的重做感到抱歉,但这更准确。
答案 0 :(得分:0)
你可能在这里有一个根本的误解。 NSDictionary
和NSSet
个对象始终未排序。
仅对NSArray
和NSOrderedSet
个对象进行排序。
您可能想要做的是创建第三个对象,NSArray并使用您想要的任何键填充它。
然后,如果您遍历NSArray,则可以按排序数组的顺序访问字典对象。
答案 1 :(得分:0)
您是否正在寻找方法调用sortedArrayUsingComparator:?这将采用一个数组并返回一个元素已排序的数组。
这是一些示例代码,它根据“排序顺序”字段中的值对字典进行排序。您应该阅读有关这些电话的文档:
NSComparisonResult (^sortBlock)(id, id) = ^(id obj1, id obj2) {
if ([[obj1 objectForKey:@"sortorder"] intValue] > [[obj2 objectForKey:@"sortorder"] intValue]) {
return (NSComparisonResult)NSOrderedDescending;
}
if ([[obj1 objectForKey:@"sortorder"] intValue] < [[obj2 objectForKey:@"sortorder"] intValue]) {
return (NSComparisonResult)NSOrderedAscending;
}
return (NSComparisonResult)NSOrderedSame;
};
+ (NSArray *) returnSortedArrayByAlpha:(NSArray*) inputArray whichField:(NSString*) whichField {
NSArray * sortedArray = [inputArray sortedArrayUsingComparator:sortBlock];
return sortedArray;
}