摘要: 自动释放池作用自动释放对象的所有 autorelease 的对象,在出了作用域之后,会被自动添加到最近创建的自动释放池中自动释放池被销毁或者耗尽时,会向池中所有对象发送 release 消息,释放池中对象自动释放池,在 ARC & MRC 程序中,同样有效高级面试题:自动释放池是什么... 阅读全文
posted @ 2015-08-15 23:41 家号 阅读(201) 评论(0) 推荐(0) 编辑
摘要: 仿SDWebImage目标:模拟 SDWebImage 的实现说明:整体代码与之前博客上的演练代码的基本一致,只是编写顺序会有变化! 在模仿 SDWebImage 之前,首先需要补充一个知识点:NSOperation自定义操作下载操作实现#import "NSString+Path... 阅读全文
posted @ 2015-08-15 23:25 家号 阅读(238) 评论(0) 推荐(0) 编辑
摘要: 多线程基本概念进程进程是指在系统中正在运行的一个应用程序每个进程之间是独立的,每个进程均运行在其专用且受保护的内存空间内通过 活动监视器 可以查看 Mac 系统中所开启的进程线程进程要想执行任务,必须得有线程,进程至少要有一条线程程序启动会默认开启一条线程,这条线程被称为主线程或UI... 阅读全文
posted @ 2015-08-15 23:03 家号 阅读(244) 评论(0) 推荐(0) 编辑
摘要: 异步加载图片目标:在表格中异步加载网络图片目的:模拟 SDWebImage 基本功能实现理解 SDWebImage 的底层实现机制SDWebImage 是非常著名的网络图片处理框架,目前国内超过 90% 公司都在使用!要求:不要求能够打出来需要掌握思路需要知道开发过程中,每一个细节是... 阅读全文
posted @ 2015-08-15 22:12 家号 阅读(401) 评论(0) 推荐(0) 编辑
摘要: GCDGCD 核心概念将任务添加到队列,并且指定执行任务的函数任务使用 block 封装 任务的 block 没有参数也没有返回值执行任务的函数 异步 dispatch_async 不用等待当前语句执行完毕,就可以执行下一条语句会开启线程执行 block 的任务异步是多线程的代名词同... 阅读全文
posted @ 2015-08-15 21:49 家号 阅读(224) 评论(0) 推荐(0) 编辑
摘要: 调度组常规用法- (void)group1 { // 1. 调度组 dispatch_group_t group = dispatch_group_create(); // 2. 队列 dispatch_queue_t q = dispatch_get_glo... 阅读全文
posted @ 2015-08-15 21:46 家号 阅读(157) 评论(0) 推荐(0) 编辑
摘要: 一次性执行 有的时候,在程序开发中,有些代码只想从程序启动就只执行一次,典型的应用场景就是“单例”// MARK: 一次性执行- (void)once { static dispatch_once_t onceToken; NSLog(@"%ld", onceToken... 阅读全文
posted @ 2015-08-15 21:45 家号 阅读(219) 评论(0) 推荐(0) 编辑
摘要: 延迟操作// MARK: - 延迟执行- (void)delay { /** 从现在开始,经过多少纳秒,由"队列"调度异步执行 block 中的代码 参数 1. when 从现在开始,经过多少纳秒 2. queue 队列 3. ... 阅读全文
posted @ 2015-08-15 21:39 家号 阅读(110) 评论(0) 推荐(0) 编辑
摘要: 全局队列是系统为了方便程序员开发提供的,其工作表现与并发队列一致全局队列 & 并发队列的区别全局队列 没有名称无论 MRC & ARC 都不需要考虑释放日常开发中,建议使用”全局队列”并发队列 有名字,和 NSThread 的 name 属性作用类似如果在 MRC 开发时,需要使用 ... 阅读全文
posted @ 2015-08-15 21:28 家号 阅读(295) 评论(0) 推荐(0) 编辑
摘要: Barrier 异步主要用于在多个异步操作完成之后,统一对非线程安全的对象进行更新适合于大规模的 I/O 操作代码演练准备工作@interface ViewController () { // 加载照片队列 dispatch_queue_t _photoQueue;}@p... 阅读全文
posted @ 2015-08-15 21:26 家号 阅读(218) 评论(0) 推荐(0) 编辑
摘要: 同步任务的作用 同步任务,可以让其他异步执行的任务,依赖某一个同步任务例如:在用户登录之后,再异步下载文件!- (void)gcdDemo1 { dispatch_queue_t queue = dispatch_queue_create("com.itheima.queue... 阅读全文
posted @ 2015-08-15 20:41 家号 阅读(137) 评论(0) 推荐(0) 编辑
摘要: 主队列特点专门用来在主线程上调度任务的队列不会开启线程以先进先出的方式,在主线程空闲时才会调度队列中的任务在主线程执行如果当前主线程正在有任务执行,那么无论主队列中当前被添加了什么任务,都不会被调度队列获取主队列是负责在主线程调度任务的会随着程序启动一起创建主队列只需要获取不用创建d... 阅读全文
posted @ 2015-08-15 20:39 家号 阅读(158) 评论(0) 推荐(0) 编辑
摘要: 并发队列特点以先进先出的方式,并发调度队列中的任务执行如果当前调度的任务是同步执行的,会等待任务执行完成后,再调度后续的任务如果当前调度的任务是异步执行的,同时底层线程池有可用的线程资源,会再新的线程调度后续任务的执行队列创建dispatch_queue_t queue = disp... 阅读全文
posted @ 2015-08-15 20:38 家号 阅读(436) 评论(0) 推荐(0) 编辑
摘要: 串行队列特点以先进先出的方式,顺序调度队列中的任务执行无论队列中所指定的执行任务函数是同步还是异步,都会等待前一个任务执行完成后,再调度后面的任务队列创建dispatch_queue_t queue = dispatch_queue_create("com.itheima.queue... 阅读全文
posted @ 2015-08-15 20:35 家号 阅读(454) 评论(0) 推荐(0) 编辑
摘要: GCD 常用代码体验代码异步执行任务- (void)gcdDemo1 { // 1. 全局队列 dispatch_queue_t q = dispatch_get_global_queue(0, 0); // 2. 任务 void (^task)() = ^ ... 阅读全文
posted @ 2015-08-15 20:33 家号 阅读(140) 评论(0) 推荐(0) 编辑
摘要: 同步 & 异步概念同步 必须等待当前语句执行完毕,才会执行下一条语句异步 不用等待当前语句执行完毕,就可以执行下一条语句NSThread 中的 同步 & 异步- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)even... 阅读全文
posted @ 2015-08-15 20:32 家号 阅读(139) 评论(0) 推荐(0) 编辑
摘要: block概念block 是 C 语言的是一种数据类型,可以当作参数传递是一组预先准备好的代码,在需要的时候执行动画 block 回顾self.demoView.center = CGPointMake(self.view.center.x, 0);// 此方法会立即执行动画 blo... 阅读全文
posted @ 2015-08-15 20:30 家号 阅读(138) 评论(0) 推荐(0) 编辑
摘要: /*------------------------------------ 数据解析: 1.JSON数据 --------------------------------*/重点:1.什么是JSON数据.{ 1.JSON:是一种轻量级的传输数据格式,用于数据交互. JSON是javascri... 阅读全文
posted @ 2015-08-15 16:14 家号 阅读(141) 评论(0) 推荐(0) 编辑