ios排序知识点函数

来源:互联网 发布:西安云计算 编辑:程序博客网 时间:2024/05/16 01:22

排序

Person.h

@interface Person :NSObject

{

   int _age;

   int _integrity;

   NSString * _name;

}

- (id)initWithAge:(int)age andWithIntegrity:(int)i andName:(NSString *)name;

@property (nonatomic)int age;

@property (nonatomic)int integrity;

//左边  大于 右边的准则

- (BOOL)olderThanIntegrity:(Person *)preson;

- (BOOL)youngerThanIntegrity:(Person *)person;



Person.m


#import "Person.h"


@implementation Person

@synthesize age = _age;

@synthesize integrity =_integrity;

- (id)initWithAge:(int)age andWithIntegrity:(int)i andName:(NSString *)name{


   if (self = [superinit]) {

       _age = age;

       _integrity = i;

       _name = name;

    }

    return self;

}

//提供一个左边大于右边进行交换的准则 升序;

- (BOOL)olderThanIntegrity:(Person *)person{

//    if (self.integrity > person.integrity) {

//        return YES;

//    }else{

//        return NO;

//    }

  

    returnself.integrity > person.integrity;

}


//降序

-  (BOOL)youngerThanIntegrity:(Person *)person{

    returnself.integrity < person.integrity;

}


- (NSString *)description{

    NSString *str = [NSStringstringWithFormat:@"name = %@ age = %d节操 = %d",_name,_age,_integrity];

   return str;

}


@end




main


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

{


    @autoreleasepool {

        

        Person *qiange = [[Personalloc]initWithAge:25andWithIntegrity:0andName:@"qiange"];

        Person *liangge = [[Personalloc]initWithAge:30andWithIntegrity:-1andName:@"liangge"];

        Person *laoGuo = [[Personalloc]initWithAge:30andWithIntegrity:80andName:@"laoguo"];

        Person *laoPan = [[Personalloc]initWithAge:30andWithIntegrity:38andName:@"laoPan"];

        Person *mars = [[Personalloc]initWithAge:35andWithIntegrity:22andName:@"mars"];

        Person *zhouXiang = [[Personalloc]initWithAge:40andWithIntegrity:250andName:@"zhouxiang"];

        

        NSMutableArray *array = [[NSMutableArrayalloc]init];

        [arrayaddObject:mars];

        [arrayaddObject:laoGuo];

        [arrayaddObject:qiange];

        [arrayaddObject:zhouXiang];

        [arrayaddObject:liangge];

        [arrayaddObject:laoPan];

        //sortUsingSelector:这个是一个排序方法,已经实现了,但是缺少排序准则(升序/降序),(这个准则就是一个函数)

        //排序:数组元素应该是相同的对象指针类型

        //2.数组元素是哪个类的对象指针,那么我就把这个准则写到这个类中

        //3.这个准则就是什么时候交换???左边大于右边交换还是    左边小于右边交换

       //升序

        [array sortUsingSelector:@selector(olderThanIntegrity:)];//@selector(olderThanIntegrity:)选择器 把函数名转化为选择器

        //相当于把olderThanIntegrity:传入sortUsingSelector:中;

        [arraysortUsingSelector:@selector(youngerThanIntegrity:)];//降序

       NSLog(@"array = %@",array);

        

        

    }

   return 0;

}



0 0
原创粉丝点击