A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

#import <Foundation/Foundation.h>

@interface Student : NSObject
{
@public
    NSString*_name;
    int _age;
    int _score;
}
-(void)setName:(NSString*)name;
-(NSString*)name;

-(void)setAge:(int)age;
-(int)age;

-(void)setScore:(int)score;
-(int)score;

-(void)printf;
-(instancetype)initWithName:(NSString*)name andAge:(int)age andScore:(int)score;
@end

@implementation Student
-(void)dealloc{
//子类先释放
    [_name release];
    //释放父类
    [super dealloc];
}
-(void)setName:(NSString*)name{
    if (_name!=name) {//release旧值,retain新值
        [_name release];
        _name=[name retain];
    }
}
-(NSString*)name{
    return _name;
}

-(void)setAge:(int)age{
    _age=age;
}
-(int)age{
    return _age;
}

-(void)setScore:(int)score{
    _score=score;
}
-(int)score{
    return  _score;
}

-(void)printf{
    NSLog(@"学生的姓名是:%@,年龄是:%d,分数是:%d",_name,_age,_score);
}
-(instancetype)initWithName:(NSString*)name andAge:(int)age andScore:(int)score{
    if (self=[super init]) {
        _name=name;
        _age=age;
        _score=score;
    }
    return self;
}

@end

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        //创建五个学生
        Student*s1=[[Student alloc]initWithName:@"aa" andAge:20 andScore:80];
        Student*s2=[[Student alloc]initWithName:@"bb" andAge:21 andScore:70];
        Student*s3=[[Student alloc]initWithName:@"cc" andAge:22 andScore:70];
        Student*s4=[[Student alloc]initWithName:@"dd" andAge:19 andScore:60];
        Student*s5=[[Student alloc]initWithName:@"ee" andAge:20 andScore:90];
        //把五个对象加入到数组中去
        NSArray *stuArray=@[s1,s2,s3,s4,s5];
        //设定排序规则
        
        //按姓名排序
        NSSortDescriptor *d1=[NSSortDescriptor sortDescriptorWithKey:@"name" ascending:YES];
        
        //按年龄排序
        NSSortDescriptor *d2=[NSSortDescriptor sortDescriptorWithKey:@"age" ascending:NO];
        
        //按分数排序
        NSSortDescriptor *d3=[NSSortDescriptor sortDescriptorWithKey:@"score" ascending:NO];
        
        //定义新的数组来接受排序后的结果
        NSArray *array=[stuArray sortedArrayUsingDescriptors:[NSArray arrayWithObjects:d3,d2,d1, nil]];
        
        //循环遍历
        [array enumerateObjectsUsingBlock:^(id  _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
            [obj printf];
        }];
    }
    return 0;
}

评分

参与人数 2黑马币 +10 收起 理由
zhao543 + 5 赞一个!
double-w + 5 神马都是浮云

查看全部评分

1 个回复

倒序浏览
哈哈,加油加油
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马