iOS 常见设计模式

  1. 单例模式
  2. 代理模式
  3. 观察者模式
  4. 工厂模式

单例模式

load: 当类加载到OC运行时环境中(内存), 掉会调用一次, 程序一起动就会调, 程序运行过程中只会调一次

如果类没有被引用进项目,就不会有load调用;但即使类文件被引用进来,但是没有使用,那么initialize也不会被调用。

使用NSOperation的子类方式有三种: (类似于GCD的任务)

  1. NSInvocationOperation
  2. NSBlockOperation
  3. 自定义类继承NSOperation, 实现内部方法

NSInvocationOperation的子类对象直接调用start, 不手动加入队列里面, 是在当前线程同步执行, 只有手动加入队列才会自动异步执行

NSBlockOperation不手动放入队列调用start 任务数量 > 1 才会异步并发执行(另外开线程)

[NSOperationQueue mainQueue] 主队列

队列最大并发数: 同时最多有多少个一起执行, 可以节省内存空间

NSOperationQueue里面的operaton对象可以添加依赖, 但是不能相互依赖, 除了同一个队列里面的operation之间可以依赖, 不同队列之间的operation也可以添加依赖

等operation执行完了再执行其他的操作: setCompletionBlock:

相对GCD更加的面向对象

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 原文链接:http://www.cocoachina.com/ios/20150807/12911.html 现如...
    Kevin追梦先生阅读 1,488评论 0 3
  • 在这篇文章中,我将为你整理一下 iOS 开发中几种多线程方案,以及其使用方法和注意事项。当然也会给出几种多线程的案...
    张战威ican阅读 612评论 0 0
  • 概述 这篇文章中,我不会说多线程是什么、线程和进程的区别、多线程有什么用,当然我也不会说什么是串行、什么是并行等问...
    hashakey阅读 310评论 0 0
  • 在这篇文章中,我将为你整理一下 iOS 开发中几种多线程方案,以及其使用方法和注意事项。当然也会给出几种多线程的案...
    伯恩的遗产阅读 274,790评论 251 2,331
  • 首先明确线程和进程的关系和区别: 一个程序至少有一个进程,一个进程至少有一个线程. 线程的划分尺度小于进程,使得多...
    kkj1996阅读 212评论 0 0