OC - SortArray

来源:互联网 发布:linux怎么禁ping 编辑:程序博客网 时间:2024/06/05 22:39
<main.m>
#import <Foundation/Foundation.h>#import "Person.h"int main(int argc, const char * argv[]){    @autoreleasepool {        //创建四个 Person 对象        Person *per1 = [[Person alloc ] initWithName:@"zhangSan" sex:@"male" age:@"25"];        Person *per2 = [[Person alloc] initWithName:@"liSi" sex:@"female" age:@"22"];        Person *per3 = [[Person alloc] initWithName:@"maHuaTeng" sex:@"male" age:@"38"];        Person *per4 = [[Person alloc] initWithName:@"maYun" sex:@"male" age:@"40"];                //放入数组        NSMutableArray *array = [NSMutableArray array];        //添加        [array addObject:per1];        [array addObject:per2];        [array addObject:per3];        [array addObject:per3];        [array addObject:per4];//        [@"a"compare:@"b"];                                //按自己的需求为其排序(添加核实的方法)        [array sortUsingSelector:@selector(compareByNameWithOther:)];        NSLog(@"%@",array);                [array sortUsingSelector:@selector(compareByAgeWithOther:)];        NSLog(@"%@",array);                    }    return 0;}


<Person.h>

#import <Foundation/Foundation.h>@interface Person : NSObject{    NSString *_name;    NSString *_sex;    NSString *_age;}-(id)initWithName:(NSString *)name              sex:(NSString *)sex              age:(NSString *)age;-(void)setName:(NSString *)name;-(NSString * )name;-(void)setSex:(NSString *)sex;-(NSString *)sex;-(void)setAge:(NSString *)age;-(NSString *)age;//规定输出格式的方法-(NSString *)description;//按姓名排序-(NSComparisonResult)compareByNameWithOther:(Person *)anotherPerson;//按年龄排序-(NSComparisonResult)compareByAgeWithOther:(Person *)anotherPerson;@end

<Person.m>

#import "Person.h"@implementation Person-(id)initWithName:(NSString *)name              sex:(NSString *)sex              age:(NSString *)age{    if ([super init]) {        _name = name;        _sex = sex;        _age = age;    }return self;}-(void)setName:(NSString *)name{    _name = name;}-(NSString * )name{    return _name;}-(void)setSex:(NSString *)sex{    _sex = sex;}-(NSString *)sex{    return _sex;}-(void)setAge:(NSString *)age{    _age = age;}-(NSString *)age{    return _age;}-(NSString *)description{    return [NSString stringWithFormat:@"name:%@,sex:%@,age:%@",_name,_sex,_age];}//按姓名排序-(NSComparisonResult)compareByNameWithOther:(Person *)anotherPerson{    if ([self.name compare:anotherPerson.name] > 0  ) {        //如果当前的名字大于传入的名字大于传入的名字,则返回降序        return NSOrderedDescending;    }else if([self.name compare:anotherPerson.name] < 0){        //如果当前的名字小于传入的名字大于传入的名字,则返回升序        return NSOrderedAscending;    }    //如果都不满足,则是相等    return NSOrderedSame;    }//按年龄排序-(NSComparisonResult)compareByAgeWithOther:(Person *)anotherPerson{    if ([self.age compare:anotherPerson.age] > 0) {                return NSOrderedDescending;    }else if ([self.age compare:anotherPerson.age] < 0){                return NSOrderedAscending;    }        return NSOrderedSame;}@end

0 0