__block 含义

个人博客:http://www.jobyme88.com 这个更新会快点

Github:https://github.com/muerbingsha/IOS-Sugars/blob/master/GCD/block.h

 

__block 就是让闭包可以使用在闭包外定义的变量

 

//
// 知识点:__block
// 划重点:__block就是让闭包可以使用在闭包外定义的变量。


#ifndef block_h
#define block_h

#import <Foundation/Foundation.h>

void block();
#endif /* block_h */

 

//
// 知识点:__block
// 划重点:__block就是让闭包可以使用在闭包外定义的变量。



#import "block.h"

int global_i = 1;
static int static_global_j = 2;

void block() {
    
    static int static_k = 3;
    __block int val = 4;  //让闭包可以修改这个值,去掉__block修饰就会报错
    

    void (^myBlock)(void) = ^{
        global_i ++;
        static_global_j ++;
        static_k ++;
        val++; 
        NSLog(@"Block中 global_i = %d,static_global_j = %d,static_k = %d,val = %d",global_i,static_global_j,static_k,val);
    };
    
    global_i ++;
    static_global_j ++;
    static_k ++;
    val ++;
    NSLog(@"Block外 global_i = %d,static_global_j = %d,static_k = %d,val = %d",global_i,static_global_j,static_k,val);
    
    myBlock();
    

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值