繁体   English   中英

ios排序数组与字典

[英]ios sort array with dictionaries

我有一个NSMutablearray,由字典填充[来自JSON请求]

我需要根据词典中的键来组织数组

词典

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

所以数组由不同的字典和上面的表格组成,我需要组织最大到最小的WinRewardPoints

我已经在SO中看到了这个答案 ,但是还不明白如何在我的案例中采用它,

非常感谢!

// 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];
}];
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);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM