01 2020 档案
摘要:NSOperation是一个抽象类,需要依赖子类去实现具体的功能 如果事务不知道队列,直接调用start函数,就会在主队列执行 NSBlockOperation有点类似于函数编程 NSOperation控制最大并发数: NSOperation处理依赖关系: 关于operationQueue的挂起,继
阅读全文
摘要:1. 之前栈栏函数在使用AFNetwork会出现问题。原因是AFN有一个自己的队列 ”com.almofire.cn.session“, 所以在使用的时候并不知道AFN底层有一个队列,就会出现栈栏函数失效没有达到之前顺序执行的预期。 libdispatch源码:https://opensource.
阅读全文
摘要:GCD 函数 队列: 队列和函数 这里崩溃的原因是死锁:(相互等待执行完成) 串行队列里面添加的顺序是:2 - block - 4 - 3 因为是串行队列,所以4 的执行需要等待block执行,block执行完成依赖于3,3又要等待4执行完毕,所以造成死锁。 队列: 队列的特征是FIFO,并发队列也
阅读全文
摘要:线程的定义: 线程是进程的基本执行单元,一个进程的所有任务都在线程中执行 进程要想执行任务,必须得有线程,进程至少要有一条线程 程序启动会默认开启一条线程,这条线程被称为主线程或UI线程 进程的定义 : 进程是指在系统中正在运行的一个应用程序 每个进程之间是独立的,每个进程均运行在其专用的且受保护的
阅读全文
摘要:方法->底层会编译成消息->消息查找会使用递归查找 元类是一种虚拟的类,系统实现的,用来存储类对象的 对象分为: 1. 实例对象:存在类里面, 2. 类对象:存在元类里面 实例方法: 递归查找父类 -> 最终会查找到NSObject 如果没有实现就会进入动态方法解析 /***************
阅读全文
摘要:Runloop 不仅仅是一个运行循环,而且是一个对像,对像里面提供很多东西。(do-while循环) 提供一个入口,让程序进入do...while循环,保证应用程序不被退出。 runloop的官方文档是在thread里面的一个小分支,runloop和线程是息息相关的。 runloop是一种消息机制的
阅读全文
摘要:c c++ 汇编一起写成的api,为OC提供运行时。 官方文档 与运行时相对应的是编译时:源代码翻译成机器可识别的语言(汇编),最后翻译成二进制代码。 代码运行起来时,运行时会把可执行文件装载到内存中。 运行时版本: Legacy and Modern Versions Objective-C 2.
阅读全文
摘要:用法: 1. 初始化并 - (FBKVOController *)kvoCtrl{ if (!_kvoCtrl) { _kvoCtrl = [FBKVOController controllerWithObserver:self]; } return _kvoCtrl; } 2. 添加观察者两种方式
阅读全文
浙公网安备 33010602011771号