什么是RunLoop? 顾名思义:运行循环,在程序运行过程中循环做一些事情 应用范畴:·定时器(Timer)、PerformSelector·G...
__block修饰符 __block可以用于解决block内部无法修改auto变量值的问题__block不能修饰全局变量、静态变量(static...
Block的类型 block有三种类型,可以通过调用class方法或者isa指针查看具体类型,最终都是集成自NSBlock类型·NSGlobal...
block本质上也是一个OC对象,它内部也有一个isa指针,block是封装了函数调用以及函数调用环境的OC对象。 Block的底层结构 如下图...
因为公司需求多样,有时候需要在已有项目上做拓展,核心功能变化不大,会在原有基础上增减部分功能,变换UI。这时候我们需要对项目有个整体改造,项目名...
我们知道,分类无法添加成员变量,在分类中定义了属性,系统没有生成对应的成员变量,也没有实现set和get方法。那我们如何实现为分类添加属性呢? ...
面试题 load、initialize方法的区别是什么?他们在Category中的调用顺序? load调用原理 1.+load方法会在runti...
Category的本质 Category编译之后的底层结构是struct category_t ,里面存储着分类的对象方法、类方法、属性、协议信...
KVC的全称是Key-Value Coding,俗称“键值编码”,可以通过一个key来访问一个属性。 我们先来了解一下KVC的基本使用。 由上面...