集合类,比如NSArrray,NSDictionary,NSSet等,都可以使用快速枚举来获取数据,或者进行排序,我们常见的排序,都是基于NSArray的,而如果对NSDictionary进行排序,显得相对复杂一点点。
假设我们现在NSDictionary中的每一个key对应一个NSNumber表示数量,现在需要根据NSNumber数量的大小对NSDictionary进行排序,方法如下:
//self.keyCntDic为 key和数字大小的字典。
NSArray *sortedKeys = [self.keyCntDic keysSortedByValueUsingComparator:^NSComparisonResult(id obj1, id obj2) {
if ([obj1 integerValue] > [obj2 integerValue]) {
return (NSComparisonResult)NSOrderedAscending;
}
if ([obj1 integerValue] < [obj2 integerValue]) {
return (NSComparisonResult)NSOrderedDescending;
}
return (NSComparisonResult)NSOrderedSame;
}];