![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
程序
爬上巨人头顶
。。
展开
-
Block的一些常用问答
记录一下关于Block的相关知识。 Q:什么是block,本质是什么? block是封装了函数调用以及函数调用环境的OC对象 block本质上是OC对象,它的内部也有isa指针 Q:block的变量捕获 为了保证block内部可以正常访问外部的变量,block有个变量捕获机制 Q:为什么局部变量需要捕获 考虑作用域的问题,需要跨函数访问 Q:block对全局变量的捕获方式 全局...原创 2019-03-19 17:32:13 · 192 阅读 · 0 评论 -
ios runtime:Method Swizzling
什么是Method Swizzling Method Swizzling (方法交换),顾名思义,及时将两个方法的实现交换,即由原来的A-AImp、B - BImap对应关系变成了A-BImap、B-AImap。 什么情况下要将两个方法的实现交换 1、hook:在开发中,经常用到系统提供的API,但出于某些需求,我们可能会对其方法的实现不太满意。就想去修改它已达到更好的效果,当特定的消息发出时,会...原创 2019-03-20 14:07:09 · 157 阅读 · 0 评论 -
ios 面试题
文章目录前言基础block 前言 网上看到的一些面试题,自己搜索答案将其整理放到一起。 基础 1.我们说的Objective-C是动态运行时语言是什么意思 object-c类的类型和数据变量的类型都是在运行是确定的,而不是在编译时确定。例如:多态特性,我们可以使用父类对象来指向子类对象,并且可以用来调用子类的方法。运行时(runtime)特性,我们可以动态的添加方法,或者替换方法。 2.讲一下...原创 2019-03-21 16:34:49 · 653 阅读 · 0 评论