- 单例模式
- 代理模式
- 观察者模式
- 工厂模式
单例模式
load: 当类加载到OC运行时环境中(内存), 掉会调用一次, 程序一起动就会调, 程序运行过程中只会调一次
如果类没有被引用进项目,就不会有load调用;但即使类文件被引用进来,但是没有使用,那么initialize也不会被调用。
使用NSOperation的子类方式有三种: (类似于GCD的任务)
- NSInvocationOperation
- NSBlockOperation
- 自定义类继承NSOperation, 实现内部方法
NSInvocationOperation的子类对象直接调用start, 不手动加入队列里面, 是在当前线程同步执行, 只有手动加入队列才会自动异步执行
NSBlockOperation不手动放入队列调用start 任务数量 > 1 才会异步并发执行(另外开线程)
[NSOperationQueue mainQueue] 主队列
队列最大并发数: 同时最多有多少个一起执行, 可以节省内存空间
NSOperationQueue里面的operaton对象可以添加依赖, 但是不能相互依赖, 除了同一个队列里面的operation之间可以依赖, 不同队列之间的operation也可以添加依赖
等operation执行完了再执行其他的操作: setCompletionBlock:
相对GCD更加的面向对象