IOS---Blcok(截获的自动变量)

先上两段代码:

//1
int val = 0;
void (^blk)(void) = ^{val = 1};
//2
id array = [[NSMutableArray alloc] init];
void (^blk)(void) = ^{
    id obj = [[NSObject alloc] init];
    [array addobject:obj];
};

稍微用过block的同学都知道,第一个程序编译时会出错,因为该程序向截获的代码赋值了(如果要负值,就需要加上_block,变为_block变量),而第二段代码就不会报错,如果用C语言来描述的话,那就是截获NSMutableArray类对象用的结构体实例指针,虽然不能赋值,但是使用是没有问题的

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。