Block简单四种

 //Block块
    //Block块可以传到任何地方使用
    //^托字符
    //1.无返回值,无参数的Block
     void(^myBlock)()= ^{
    
        NSLog(@"******");
    
    };
    myBlock();
    //2.有返回值有参数的Block
    NSInteger(^sumBlock)(NSInteger,NSInteger)=^(NSInteger sum1,NSInteger sum2){
        return sum1+sum2;
    };
    
    sumBlock(10,20);
    NSLog(@"%ld",sumBlock(10,20));
    
    
    //3.有返回值,无参数的
    
    NSString *(^helloBlock)()=^{
    
        return @"hello";
    };
    NSLog(@"%@",helloBlock());
    
    //4.无返回值,有参数的
    //看见^字符  就说明他是一个Block块
    void(^sayHiBlock)(NSString *)=^(NSString *s){
    
        NSLog(@"%@",s);
    };
    
    sayHiBlock(@"Hello,World");


 




   //如果我们需要在Block中改变变量的值,
    //加__block
    __block NSInteger test1=10;
    blockName testBlock=^{
    
        //和Block块同作用域的变量我们 可以只读使用,
        //但是不能改变它的值
        test1=20;
        NSLog(@"%ld",test1);
        
    };
    
    testBlock();
    //在使用__block后,如果在Block块中改变了变量的值
    //外面也改变
    NSLog(@"%ld",test1);
    



    Person *p1=[[Person alloc] initWithName:@"lili" age:18];
    Person *p2=[[Person alloc] initWithName:@"oioi" age:19];
    Person *p3=[[Person alloc] initWithName:@"wewe" age:25];
    
    
    NSMutableArray *array=[NSMutableArray array];
    
    [array addObject:p1];
    [array addObject:p2];
    [array addObject:p3];
    
    [array sortUsingComparator:^NSComparisonResult(id obj1, id obj2) {
        
        if ([obj1 age]>[obj2 age]) {
            return NSOrderedDescending;
        }
        else if ([obj1 age]==[obj2 age]){
            return NSOrderedSame;
        }
        else{			
            return NSOrderedAscending;
        }
    }];
    
    NSLog(@"%@",array);
    

 //字面量
    NSString *s=@"abc";
    NSArray *arr=@[@"1",@"222",@"333"];
    arr[1]; //下标
    
    NSDictionary *dict=@{@"1": @"a",@2:@"b"};
    dict[@"1"];  //key值
    NSLog(@"%@",arr[1]);
    
    
    
    
    
    
    
    NSNumber *num=@1;
    
    
    NSMutableArray *mutable = [@[@1, @2, @3, @4, @5]mutableCopy];
    
    NSMutableDictionary *dic2=[@{@"1": @"a",}mutableCopy];




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值