//1.数组对字符串的排序
//不可变数组
NSArray *arr=@[@"sunxiang",@"liyang",@"wangye",@"dage",@"chengyang"];
//SEL是方法选择器,它是方法选择器的类型
NSArray *newarr=[arr sortedArrayUsingSelector:@selector(compare:)];
NSLog(@"%@",arr);
NSLog(@"%@",newarr);
//2.可变数组
NSMutableArray *arr=[NSMutableArray arrayWithObjects:@"sunxiang",@"liyang",@"wangye",@"dage",@"chengyang", nil];
[arr sortUsingSelector:@selector(compare:)];
NSLog(@"%@",arr);
//3.对对象进行排序
Person *per1=[Person BaseModelWithName:@"sunxiang" sex:@"nan"];
Person *per2=[Person BaseModelWithName:@"dage" sex:@"nv"];
Person *per3=[Person BaseModelWithName:@"wangye" sex:@"nan"];
Person *per4=[Person BaseModelWithName:@"liyang" sex:@"nan"];
//用字面量创建对象和便利构造器创建是一样的
NSArray *arr=@[per1,per2,per3,per4];
//以学生的姓名作为排序的依据
NSArray *newArr= [arr sortedArrayUsingComparator:^NSComparisonResult(Person * obj1, Person * obj2) {
//-[obi1.name compare: obj2.name]降序
[obj1.name compare: obj2.name];
return [obj1.name compare:obj2.name];
}];
for (Person *per in newArr) {
NSLog(@"%@",per.name);
}
//4.
NSMutableArray *marr=[NSMutableArray arrayWithObjects:per1,per2,per3,per4, nil];
[marr sortUsingComparator:^NSComparisonResult(id obj1, id obj2) {
Person *per11=(Person *)obj1;
Person *per22=(Person *)obj2;
return [per11.name compare:per22.name];
}];
for (Person *per in marr) {
NSLog(@"%@",per.name);
}