//Grade类中有name,score 要求将NSArray中Gradedui对象按score高低排序输出
Grade.h文件
@property (nonatomic,copy)NSString *name;
@property (assign)float score;
main文件
int main(int argc, const char * argv[])
{
@autoreleasepool {
Grade *g1 = [[Grade alloc]initWithName:@"ycw" withScore:80.2];
Grade *g2 = [[Grade alloc]initWithName:@"lhj" withScore:95.3];
Grade *g3 = [[Grade alloc]initWithName:@"cw" withScore:64.9];
Grade *g4 = [[Grade alloc]initWithName:@"dxw" withScore:84.7];
Grade *g5 = [[Grade alloc]initWithName:@"sk" withScore:48.4];
Grade *g6 = [[Grade alloc]initWithName:@"yt" withScore:74.2];
NSMutableArray *array = [NSMutableArray arrayWithObjects:g1,g2,g3,g4,g5,g6,nil];
NSArray * array2 = [array sortedArrayUsingComparator:^NSComparisonResult(Grade * obj1,Grade * obj2) {
NSNumber *num1 = [NSNumber numberWithFloat:obj1.score];
NSNumber *num2 = [NSNumber numberWithFloat:obj2.score];
if([num2 compare:num1]== NSOrderedSame)
{
return [obj1.name compare:obj2.name]; //若分数相同,再按name的搜字母顺序排序
}
return [num2 compare:num1]; // 注意compare比较的是对象,所以要先将float类型的score转化成NSNumber对象,然后才能比较
}];
return 0;
}
//遍历输出字典
NSMutableDictionary *glossary = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"你好",@"hello",
@"世界" ,@"world",@"加油",@"fight", nil];for (NSString *key in glossary) {
NSLog(@"key = %@,values = %@",key,[glossary objectForKey:key]);
}
NSArray *keys = [glossary allKeys];
keys = [keys sortedArrayUsingComparator:
^(NSString *obj1,NSString *obj2){
return [obj1 compare:obj2];
}];
for(NSString *key in keys)
{
NSLog(@"key = %@,values = %@",key,[glossary objectForKey:key]);
}