首页 > 其他 > 详细

block 数值排序 字面量的使用

时间:2014-05-11 00:46:31      阅读:522      评论:0      收藏:0      [点我收藏+]

        

        //  创建一个block

        //  1.返回值

        //  2.使用‘^’标记一个Block,并写出Block变量

        //  3.确定Block参数列表,参数名可以省略

        //  4.‘^’

        //  5.参数列表

        //  6.主题部分,‘{}

        //  7.‘{}’内部写具体实现

        

 

        int (^myBlock)(int, int) = ^(int a, int b){

            return a + b;

        };

        

        int (^myBlock1)(int, int) = ^(int c, int d){

            return c + d;

        };

        

        NSInteger (^Ming)(NSString *) = ^(NSString *p){

            return [p integerValue];

           

        };

        

 

        //Block与变量

        //Block内部:

        //1.全局变量既可以访问,也可以修改

        //2.局部变量只可以访问,不可以修改;如果想要修改,需要使用__block修改局部变量

        

        

        __block int count = 5;

        int (^sum)(int) = ^(int a){

            count = 20// 修改局部变量

            return a * count;

        };

        

        NSLog(@"%d",sum(10));

        

        

        //使用Block对数组进行排序

        NSArray *arr = [NSArrayarrayWithObjects:@"asf 60",@"ab 54",@"78",nil];

        NSComparator sortBlock = ^(id obj1, id obj2){

            return [obj1 compare:obj2];

        };

        

        arr = [arr sortedArrayUsingComparator:sortBlock];

        NSLog(@"%@",arr);   //字符串比较排序

        

        [arr sortedArrayUsingComparator:^NSComparisonResult(id obj1, id obj2) {

            return [obj1 compare:obj2];

            

        }];

 

        //根据数值排序

        NSArray *arr1 = [NSArrayarrayWithObjects:@"456",@"15",@"97",@"1123", nil];

        NSComparator paixu = ^(id obj1, id obj2){

            return [obj1 compare:obj2];

        };

        

        arr1 = [arr1 sortedArrayUsingComparator:^NSComparisonResult(id obj1, id obj2) {

            NSInteger obj1Int = [obj1 integerValue];

            NSInteger obj2Int = [obj2 integerValue];

            

            if (obj1Int > obj2Int) {

                returnNSOrderedDescending;

            }else if(obj1Int < obj2Int){

                return NSOrderedAscending;

            }else{

                return NSOrderedSame;

            }

        }];

        

        NSLog(@"%@",arr1);

 

        

        //创建5个学生对象

        

        Student *stu1 = [[Studentalloc]initWithName:@"zhang"withAge:12];

        

        Student *stu2 = [[Studentalloc]initWithName:@"li"withAge:21];

        

        Student *stu3 = [[Studentalloc]initWithName:@"sun"withAge:18];

        

        Student *stu4 = [[Studentalloc]initWithName:@"wang"withAge:32];

        

        

        

        NSMutableArray *stu = [NSMutableArrayarray];

        [stu addObject:stu1];

        [stu addObject:stu2];

        [stu addObject:stu3];

        [stu addObject:stu4];

        

 

        [stu sortUsingComparator:^NSComparisonResult(id obj1, id obj2) {

            Student *stu1 = (Student *)obj1;

            Student *stu2 = (Student *)obj2;

            

            if ([stu1 getage] > [stu2 getage]) {

              return  NSOrderedDescending;

            }if ([stu1 getage] < [stu2 getage]) {

                return NSOrderedAscending;

            }else{

                return NSOrderedSame;

            }

        }];

        

        

        for (Student *student in stu) {

            NSLog(@"%@", student);

        }

        

        NSLog(@"   ");

        

        [stu sortUsingComparator:^NSComparisonResult(id obj1, id obj2) {

            Student *stu1 = (Student *)obj1;

            Student *stu2 = (Student *)obj2;

            return [[stu1 getname]compare:[stu2 getname]];

        }];

        

        for (Student *str in stu) {

            NSLog(@"%@", str);

        }

        

        

        

      //字面量的使用

        NSString *p = @"abc";

        NSArray *arry =@[@"A", @"B", @"C"];

        NSArray *a = a[2];

        NSDictionary *dict = @{@"kkk": @"ooo",@"kk2": @"ooo"};

        NSLog(@"%@",dict[@"kkk"]);  //dict[@"xxx"] 提取对应的值

        @{@"asd": @"789"};   //设置键、值

 

block 数值排序 字面量的使用,布布扣,bubuko.com

block 数值排序 字面量的使用

原文:http://www.cnblogs.com/mingtiannihao/p/3721042.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!