序言
对于我们程序员来说,去面试一家公司。在被通知面试没通过,是非常遗憾和不爽的。面试没通过基本就两种原因,一能力不够。二面试技巧没发挥好。相比于第一种也许遗憾,但是我们也认了,但是第二种,因为自己面试发挥问题或者一些很基础的问题没发挥好没面试上才是最遗憾的吧,接下来我会每天给大家分享一些大厂面试官需要你掌握的知识点。
什么是Block
简单的来说Block是将函数及其执行上下文封装起来的对象。
举个栗子
通过 clang -rewrite-objc WYTest.m 命令编译该.m 文件,发现该 block 被编译成这个形式:
其中 WYTest 是文件名,blockTest 是方法名,这些可以忽略。
其中__WYTest__blockTest_block_impl_0 结构体为
__block_impl 结构体为
block 内部有 isa 指针,所以说其本质也是 OC 对象
block 内部则为:
所以说 Block 是将函数及其执行上下文封装起来的对象
既然 block 内部封装了函数,那么它同样也有参数和返回值。
总结
对于iOS重度爱好者,平时比较喜爱收集的一些面试资料和ios相关源码视频。以上都是自己的一些经验分享,欢迎大家点评指正,也希望能够对萌新有所帮助。顺便求一波关注,需要学习资料和编程问题的同学,可以看我简介中的交流群一起交流,探讨呀。