我有NSArray
NSDictionary
。我有两个特定的键,我想用它来排序我的数组。基本上,我目前有两个NSSortDescriptor
s:
descriptor = [NSSortDescriptor sortDescriptorWithKey:@"averageNote" ascending:NO];
descriptor2 = [NSSortDescriptor sortDescriptorWithKey:@"reviews.@count" ascending:NO];
他们只是根据元素的平均音符对数组进行排序,然后根据评论的数量排在第二位。
我想将这两个元素结合起来,使得排名更加真实:例如,70%的平均音符和30%的评论数。
我怎样才能做到这一点?
答案 0 :(得分:0)
此代码将让数组按您想要的等级排序,并且数组将按升序排序,如果您希望按降序排序,请将NSOrderedAscending
更改为NSOrderedDescending
。
NSMutableArray *array = [@[] mutableCopy];
[array sortedArrayWithOptions:NSSortStable usingComparator:^NSComparisonResult(id _Nonnull obj1, id _Nonnull obj2) {
aClass a = obj1;
aClass b = obj2;
float rankOfA = a.averageNote*0.7 + a.reviewCount*0.3;
float rankOfB = b.averageNote*0.7 + b.reviewCount*0.3;
if (rankOfA > rankOfB) {
return NSOrderedAscending;
}
}];