![Avatar notebook default](https://cdn2.jianshu.io/assets/default_avatar/avatar-notebook-default-640f7dde88592bdf6417d8ce1902636e.png)
说明:对于block底层不是太熟悉或者下面题目中有不太懂的地方,建议先去看看我另外一篇博客:OC中block的底层实现原理。 1. 第一题 下面...
1. block的本质 block本质上是一个OC对象,它内部也有isa指针,这个对象封装了函数调用地址以及函数调用环境(函数参数、返回值、捕获...
1. Category的使用场景 Category也叫分类或类别,是OC提供的一种扩展类的方式。不管是自定义的类还是系统的类,我们都可以通过Ca...
OC文件在编译后,类相关的数据结构会保留在目标文件中,在运行时得到解析和使用。在应用程序运行起来的时候,类的信息会有加载和初始化过程,这个过程就...
1. KVC的使用 KVC的全称是Key-Value Coding,也就是键值编码,我们可以通过一个key来设置或获取某个属性的值。KVC所用到...
1. KVO的使用 KVO(Key-Value Observing),也就是我们常说的键值监听,可以用于监听某个对象属性值的改变。KVO使用比较...
OC中所有的实例对象、类对象和元类对象中都一个名为isa的成员变量,他们通常把它叫isa指针,既然是指针,那里面存储的应该就是一个地址。在以前的...
本次讲解的很多内容都涉及到objc的源码,有兴趣的可以去下载最新版本的objc4源码。 1. OC对象的内存布局 1.1 一个NSObject...
我们平时编写的Objective-C代码,底层实现其实都是C\C++代码,Objective-C的面向对象都是基于C\C++的结构体来实现的。所...
文集作者