03 2022 档案
摘要:iOS面试题—KVC/KVOKVO是OC对于观察者设计模式的一种实现,是isa混写来实现的。 原理:当调佣addObserve方法的时候,系统运行时会新建一个NSKVONotifying_A类,然后将A的isa指针指向这个类,NSKVONotifying_A类实际是类A的子类,之所以继承是为了重写类
阅读全文
摘要:1、 问题:什么是RunLoop? 答:RunLoop是通过内部维护的事件循环来对事件/消息进行管理的一个对象。1、没有消息需要处理时,休眠以避免资源占有。2、有消息需要处理时,立刻被唤醒———————————————————— 问题:main函数为什么能保证一直运行状态不退出? 答: 在main函
阅读全文
摘要:runtime的数据结构图对象、类对象、元类对象类对象存储实例方法列表等信息元类对象存储类方法列表等信息根元类的isa指针指向根类对象————————————————1.什么是runtime: Runtime运行时机制,最主要的是消息机制,是一套比较底层的纯C语言API,属于1个C语言库, 包含了很
阅读全文
摘要:GCD特点:1、GCD是基于c语言的用于多核的并行运算2、GCD会自动利用更多的CPU内核(比如双核、四核)3、GCD会自动管理线程的生命周期(创建线程、调度任务、销毁线程)4、程序员只需要告诉GCD想要执行什么任务,不需要编写任何线程管理代码队列:串行队列:会顺序执行 并行队列:可以并行执行 全局
阅读全文
摘要:什么是block?01-Block是将函数及其执行上下文封装起来的对象,在底层是一个Block_layout。 02-Block调用即是函数调用Block捕获外界变量的时候会生成一个同名的中间变量,取获取到的时候的值Block使用外界变量的时候会生成一个__Block_byref_xxx_0的结构体
阅读全文
摘要:在 iOS 中,我们通常将内存分为五大部分: * 代码区:用于存放程序的代码,即 CPU 执行的机器指令,并且是只读的。 * 全局区 / 静态区:它主要存放静态数据、全局数据和常量。分为未初始化全局区(BSS 段)、初始化全局区:(数据段)。程序结束后由系统释放。 * 数据段:用于存放可执行文件中已
阅读全文

浙公网安备 33010602011771号