排序 接口

//

//  main.m

//  练习排序1

//

//  Created by syrcfwzx on 16/1/7.

//  Copyright (c) 2016年 syrcfwzx. All rights reserved.

//

#define NSLog(FORMAT, ...) printf("%s ", [[NSString stringWithFormat:FORMAT, ##__VA_ARGS__] UTF8String]) 

#import <Foundation/Foundation.h>

#import "preson.h"

int main(int argc, const char * argv[]) {

    @autoreleasepool {

        preson *stu=[[preson alloc]initClasses:@"IOS8" andName:@"CB" andAge:19];

        preson *stu1=[[preson alloc]initClasses:@"IOS6" andName:@"SB" andAge:20];

        preson *stu2=[[preson alloc]initClasses:@"IOS8" andName:@"AB" andAge:17];

        preson *stu3=[[preson alloc]initClasses:@"IOS7" andName:@"JB" andAge:29];

        NSArray *arr=[NSArray arrayWithObjects:stu,stu1,stu2,stu3,nil];

        NSArray *sortArr=[arr sortedArrayUsingSelector:

                         @selector(compareCLASSandNAME:)];

    for(preson *preson1 in sortArr)

    {

        NSLog(@"班级-%@  姓名-%@ 年龄-%d",preson1.classes,preson1.name,preson1.age);

    }

//        NSArray *sortArr1=[arr sortedArrayUsingSelector:@selector(compareAge:)];

//        for (preson *preson1 in sortArr1) {

//           NSLog(@"班级-%@  姓名-%@ 年龄-%d",preson1.classes,preson1.name,preson1.age);

//        }

    }

    return 0;

}

//

//  preson.h

//  练习排序1

//

//  Created by syrcfwzx on 16/1/7.

//  Copyright (c) 2016年 syrcfwzx. All rights reserved.

//

#import <Foundation/Foundation.h>

@interface preson : NSObject

@property NSString *classes;

@property NSString *name;

@property int age;

-(instancetype)initClasses:(NSString *)classes andName:(NSString *)name

                    andAge:(int)age;

-(NSComparisonResult)compareCLASSandNAME:(preson *)preson1;

-(NSComparisonResult)compareAge:(preson *)preson1;

@end

//

//  preson.m

//  练习排序1

//

//  Created by syrcfwzx on 16/1/7.

//  Copyright (c) 2016年 syrcfwzx. All rights reserved.

//

#import "preson.h"

@implementation preson

-(instancetype)initClasses:(NSString *)classes andName:(NSString *)name

                    andAge:(int)age;

{

    preson *preson1=[[preson alloc]init];

    preson1.classes=classes;

    preson1.name=name;

    preson1.age=age;

    return preson1;

}

-(NSComparisonResult)compareCLASSandNAME:(preson *)preson1;{

    NSComparisonResult result=[self.classes compare:preson1.classes];

   

    if (result==NSOrderedAscending) {

        return [self.classes compare:preson1.classes];

    }else{

        return result;

    }

    

}

-(NSComparisonResult)compareAge:(preson *)preson1;{

    if (self.age==preson1.age) {

        return NSOrderedSame;

    }else if (self.age<preson1.age){

        return NSOrderedAscending;

    }else{

        return NSOrderedDescending;

    }

}

            //重写description使打印出来的带有格式

-(NSString *)description{

            //格式化输出

         return [NSString stringWithFormat:@"Class:%@ Name:%@ Age:%d",self.classes,self.name,self.age];

    

     }

@end

原文地址:https://www.cnblogs.com/LiHai/p/5113080.html