iOS Block截获变量

什么是Block

block是将函数及其执行上下文封装起来的对象

关于Block截获变量

int multiplier = 6;
int(^Block)(int) = ^int(int num ){
return num * multiplier ;
};
multiplier = 4;
NSLog("result is%d" ,Block(2) ) ;

来看这道经典的block面试题,它的结果是12还是8?(答案为12)

static int multiplier = 6;
int(^Block)(int) = ^int(int num ){
return num * multiplier ;
};
multiplier = 4;
NSLog("result is%d" ,Block(2) ) ;

而这个答案为8。这是因为:

  • 对于基本数据类型的局部变量截获其值
  • 对于对象类型的局部变量连同所有权修饰符一起截获
  • 指针形式截获静态变量
  • 不截获全局变量和静态全局变量
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1、概述 闭包 = 一个函数「或指向函数的指针」+ 该函数执行的外部的上下文变量「也就是自由变量」;Block 是...
    DeerRun阅读 740评论 0 0
  • 1、block简介 block字面意思就是代码块 iOS4.0 Apple引入的特性 block是Objectiv...
    呆子四二阅读 1,673评论 1 6
  • 1.ios高性能编程 (1).内层 最小的内层平均值和峰值(2).耗电量 高效的算法和数据结构(3).初始化时...
    欧辰_OSR阅读 30,246评论 8 265
  • 今天的观察报告讨论课上,讨论的是一篇两岁的孩子和父母互动的过程。孩子在和父母的相处中,多次崩溃大哭。母亲一直不为所...
    壹家心理阅读 365评论 1 0
  • 吴家有女初长成 孙策,孙权的妹妹孙芊蔚,字尚香,随着父亲到江东。 孙坚拜访当地门阀周,张,鲁,陆。初有周家庶子周瑜...
    rixty阅读 311评论 0 0

友情链接更多精彩内容