首页 > 移动平台 > 详细

iOS中的block

时间:2015-05-22 22:24:59      阅读:223      评论:0      收藏:0      [点我收藏+]

定义一个block:

int (^blockname)(int, int);

blockname = ^(int a, int b){

return a>b ? a: b;

};

这个block等同于:

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

return a>b?a:b;

};

使用:

NSInterge a = blockname(3, 4);

NSLog(@"a=%ld", a);

.block作为方法的参数
    NSArray *nameArray = [NSArray arrayWithObjects:@"zhao", @"qian", @"sun", @"li", nil];
    NSArray *arr = [nameArray sortedArrayUsingSelector:@selector(compare:)];
    NSLog(@"%@", arr);
    
    NSMutableArray *numberArray = [NSMutableArray arrayWithObjects:@"2", @"1", @"10", @"015", nil];
    NSArray *sortArray1 = [numberArray sortedArrayUsingSelector:@selector(compare:)];
    NSLog(@"%@", sortArray1);
    
   NSArray *arr2 = [numberArray sortedArrayUsingComparator:^NSComparisonResult(NSString *obj1, NSString *obj2) {
        //相邻两个元素(obj1, obj2)比较的规则
        if ([obj1 intValue] > [obj2 intValue]) {
            //相邻两个元素(obj1, obj2)的比较规则
            //系统排序以满足NSOorderDescending的条件进行交换
            //注: 快速判断拍好的数组, 以满足NSOrderAscending的条件为准
            
            return NSOrderedAscending;
        }else if ([obj1 intValue] == [obj2 intValue]){
            return NSOrderedSame;
        }else{
            return NSOrderedDescending;
        }
    }];

 

iOS中的block

原文:http://www.cnblogs.com/id-spring123/p/4523378.html

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