//
// 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