ios sort array with dictionaries

你。 提交于 2019-12-05 02:05:29

问题


I have an NSMutablearray, populated by dictionaries [from a JSON request]

i need to organize the array depending to a key in the dictionaries

the dictionary

IdReward = 198;
Name = "Online R d";
RewardImageUrl = "/FileStorimage=1206";
WinRewardPoints = 250;

so the array is composed by different dictionaries with the above form, and I need to organize by maximum to minimum WinRewardPoints

I have seen this answer in SO, but dont understand yet how to adopt it for my case,

thanks a lot!


回答1:


IdReward = 198;
Name = "Online R d";
RewardImageUrl = "/FileStorimage=1206";
WinRewardPoints = 250;


NSMutableArray *arr = [[NSMutableArray alloc]init];

for (int i=0; i<[dict count]; i++) {
    [arr addObject:[dict valueForKey:@"WinRewardPoints"]];
}

NSSortDescriptor *sortDescriptor = [[[NSSortDescriptor alloc] initWithKey:nil ascending:YES] autorelease];
NSArray *sortDescriptors = [NSArray arrayWithObject:sortDescriptor];
arr = [[arr sortedArrayUsingDescriptors:sortDescriptors] copy];


NSMutableArray *final_arr = [[NSMutableArray alloc]init];
for(NSString* str in arr)<p>
{
    for(int i=0 ; i<[dict count]; i++)
    {
            <t>if ([str isEqualToString:[[dict valueForKey:@"WinRewardPoints"]objectAtIndex:i]]) 
                            {

                [final_arr addObject:[dict objectAtIndex:i]];
            }
    }

}

NSLog(@"%@",final_arr);



回答2:


// create a NSString constant for the key we want to sort by, so we don't have to create more NSString instances while sorting
static NSString* const keyToSortBy = @"WinRewardPoints";

// sort an array that contains dictionaries, each of which contains a NSNumber for the key defined "WinRewardPoints"
[yourArray sortUsingComparator:^NSComparisonResult(id obj1, id obj2) {
    NSNumber* n1 = [obj1 objectForKey:keyToSortBy];
    NSNumber* n2 = [obj2 objectForKey:keyToSortBy];
    return [n1 compare:n2];
}];


来源:https://stackoverflow.com/questions/8483172/ios-sort-array-with-dictionaries

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!