Person 排序 方法重写

main.m

//
//  Person.m
//  sort
//
//  Created by syrcfwzx on 16/1/7.
//  Copyright (c) 2016年 syrcfwzx. All rights reserved.
//

#import "Person.h"

@implementation Person
-(instancetype)initWithClasses:(NSString*)c andName:(NSString*)n andAge:(int)a
{
    self=[super init];
    if(self)
    {
       self.classes=c;
       self.name=n;
       self.age=a;
    }
    return self;
    
}
-(NSString*)description
{
    return [NSString stringWithFormat:@"class=%@ name=%@ age=%d",self.classes,self.name,self.age];
}

-(NSComparisonResult)compareWithClassesAndName:(Person*)p
{
    NSComparisonResult result =[self.classes compare:p.classes];
    if(result ==NSOrderedSame)
    {
        return [self.name compare:p.name];
    }
    else
    {
    return result;
    }
}
-(NSComparisonResult)compareWithAge:(Person*)p
{
    if(self.age ==p.age)
    {
        return NSOrderedSame;
    }
    else if (self.age >p.age)
    {
        return NSOrderedDescending;
    }
    else
    {
        return NSOrderedAscending;
    }
}



@end

.h

//
//  Person.h
//  sort
//
//  Created by syrcfwzx on 16/1/7.
//  Copyright (c) 2016年 syrcfwzx. All rights reserved.
//

#import <Foundation/Foundation.h>

@interface Person : NSObject
@property NSString* classes;
@property NSString* name;
@property int age;

-(instancetype)initWithClasses:(NSString*)c andName:(NSString*)n andAge:(int)a;
-(NSComparisonResult)compareWithClassesAndName:(Person*)p;
-(NSComparisonResult)compareWithAge:(Person*)p;


@end

.m

//
//  Person.m
//  sort
//
//  Created by syrcfwzx on 16/1/7.
//  Copyright (c) 2016年 syrcfwzx. All rights reserved.
//

#import "Person.h"

@implementation Person
-(instancetype)initWithClasses:(NSString*)c andName:(NSString*)n andAge:(int)a
{
    self=[super init];
    if(self)
    {
       self.classes=c;
       self.name=n;
       self.age=a;
    }
    return self;
    
}
-(NSString*)description
{
    return [NSString stringWithFormat:@"class=%@ name=%@ age=%d",self.classes,self.name,self.age];
}

-(NSComparisonResult)compareWithClassesAndName:(Person*)p
{
    NSComparisonResult result =[self.classes compare:p.classes];
    if(result ==NSOrderedSame)
    {
        return [self.name compare:p.name];
    }
    else
    {
    return result;
    }
}
-(NSComparisonResult)compareWithAge:(Person*)p
{
    if(self.age ==p.age)
    {
        return NSOrderedSame;
    }
    else if (self.age >p.age)
    {
        return NSOrderedDescending;
    }
    else
    {
        return NSOrderedAscending;
    }
}



@end
原文地址:https://www.cnblogs.com/hezhuangzhuang/p/5115486.html