Block相关面试点详解

block的原理是怎样的?本质是什么?

image
image
image

auto:代表自动变量,离开作用域就销毁
static:将变量的地址传到block

image

block分为三种类型。global类型不需要太过注意,需要注意stack类型转换为malloc类型。只有block在堆上时我们才可以对其进行管理。

image
image
image
image
image

封装了函数调用以及调用环境的OC对象

__blcok的作用是什么?有什么使用注意点?

image
image
image

block的属性修饰词为什么是copy?使用block有哪些使用注意?

如果不copy的话,那么block就不会在堆空间上,无法对你生命周期进行控制。需要注意循环引用(ARC环境下 strong 、copy没有区别)

block在修改NSMutableArray内容时,需不需要添加__blcok?

不需要。修改内容也是对数组的使用,只有对对象赋值的时候才需要__block。

原文链接:https://www.jianshu.com/p/e9189f550192

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • block的原理是怎样的?本质是什么? auto:代表自动变量,离开作用域就销毁static:将变量的地址传到bl...
    彭小先生阅读 1,880评论 0 2
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,170评论 1 32
  • 开始之前,我想先提几个问题,看看大家是否对此有疑惑。唐巧已经写过一篇对block很有研究的文章,大家可以去看看(本...
    高思阳阅读 1,704评论 0 1
  • Block是OSX Snow Leopard和iOS 4引入的C语言扩充功能,是一个带有自动变量(局部变量)的匿名...
    Leafmure阅读 159评论 0 0
  • 在iOS工程中,如果我们使用xib来编写视图的话,会经常用到Bundle.main.loadNibNamed的方法...
    coder_zhengyi阅读 16,185评论 0 11