07 2016 档案

摘要:一、const与宏的区别: const简介:之前常用的字符串常量,一般是抽成宏,但是苹果不推荐我们抽成宏,推荐我们使用const常量。 编译时刻:宏是预编译(编译之前处理),const是编译阶段。 编译检查:宏不做检查,不会报编译错误,只是替换,const会编译检查,会报编译错误。 宏的好处:宏能定 阅读全文

posted @ 2016-07-28 01:21 柠檬片 阅读(131) 评论(0) 推荐(0)

摘要:1.发送消息 方法调用的本质,就是让对象发送消息。 objc_msgSend,只有对象才能发送消息,因此以objc开头. 使用消息机制前提,必须导入#import <objc/message.h> 消息机制简单使用 clang -rewrite-objc main.m 查看最终生成代码 // 创建p 阅读全文

posted @ 2016-07-27 16:21 柠檬片 阅读(226) 评论(0) 推荐(0)

摘要:1.Runloop基础知识 - 1.1 字面意思 a 运行循环 b 跑圈 - 1.2 基本作用(作用重大) a 保持程序的持续运行(ios程序为什么能一直活着不会死) b 处理app中的各种事件(比如触摸事件、定时器事件【NSTimer】、selector事件【选择器·performSelector 阅读全文

posted @ 2016-07-19 00:37 柠檬片 阅读(89) 评论(0) 推荐(0)

摘要:1 -(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event 2 { 3 //1.创建队列 4 NSOperationQueue *queue= [[NSOperationQueue alloc]init]; 阅读全文

posted @ 2016-07-17 17:45 柠檬片 阅读(133) 评论(0) 推荐(0)

摘要:1.操作依赖 NSOperation之间可以设置依赖来保证执行顺序 比如一定要让操作A执行完后,才能执行操作B,可以这么写 [operationB addDependency:operationA]; // 操作B依赖于操作A 可以在不同queue的NSOperation之间创建依赖关系 注意:不能 阅读全文

posted @ 2016-07-17 17:18 柠檬片 阅读(290) 评论(0) 推荐(0)

摘要:1.设置最大并发数 什么是并发数 同时执行的任务数 比如,同时开3个线程执行3个任务,并发数就是3 最大并发数的相关方法 - (NSInteger)maxConcurrentOperationCount; - (void)setMaxConcurrentOperationCount:(NSInteg 阅读全文

posted @ 2016-07-17 17:14 柠檬片 阅读(131) 评论(0) 推荐(0)

摘要:NSOperationQueue的作用 NSOperationQueue的作用 NSOperation可以调用start方法来执行任务,但默认是同步执行的 如果将NSOperation添加到NSOperationQueue(操作队列)中,系统会自动异步执行NSOperation中的操作 添加操作到N 阅读全文

posted @ 2016-07-17 16:26 柠檬片 阅读(372) 评论(0) 推荐(0)

摘要:1.<!--StartFragment-->NSInvocationOperation<!--EndFragment--> 创建NSInvocationOperation对象 - (id)initWithTarget:(id)target selector:(SEL)sel object:(id)a 阅读全文

posted @ 2016-07-17 16:22 柠檬片 阅读(427) 评论(0) 推荐(0)

摘要:NSOperation的作用 NSOperation的作用 配合使用NSOperation和NSOperationQueue也能实现多线程编程 NSOperation和NSOperationQueue实现多线程的具体步骤 先将需要执行的操作封装到一个NSOperation对象中 然后将NSOpera 阅读全文

posted @ 2016-07-17 16:16 柠檬片 阅读(132) 评论(0) 推荐(0)

摘要:1.单例模式 1.1 概念相关 (1)单例模式 (2)使用场合 1.2 ARC实现单例 (1)步骤 (2)相关代码 1.3 MRC实现单例 (1)实现步骤 (2)配置MRC环境知识 (3)相关代码 1.4 通用版本 (1)有意思的对话 (2)使用带参数的宏完成通用版单例模式代码 2.NSOperat 阅读全文

posted @ 2016-07-16 23:02 柠檬片 阅读(140) 评论(0) 推荐(0)

摘要:1.栅栏函数 作用:控制线程的执行顺序 注:栅栏函数不能使用全局并发队列 1 -(void)barrier 2 { 3 //1.创建队列(并发队列) 4 dispatch_queue_t queue = dispatch_queue_create("com.downloadqueue", DISPA 阅读全文

posted @ 2016-07-16 23:00 柠檬片 阅读(138) 评论(0) 推荐(0)

摘要:从子线程回到主线程 从子线程回到主线程 dispatch_async( dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ // 执行耗时的异步操作... dispatch_async(dispatch_get_main 阅读全文

posted @ 2016-07-16 21:34 柠檬片 阅读(154) 评论(0) 推荐(0)

摘要:队列 第一个参数:C语言字符串,标签 第二个参数: DISPATCH_QUEUE_CONCURRENT:并发队列 DISPATCH_QUEUE_SERIAL:串行队列 dispatch_queue_t queue = dispatch_queue_create("com.520it.download 阅读全文

posted @ 2016-07-16 21:00 柠檬片 阅读(314) 评论(0) 推荐(0)

摘要:什么是GCD 什么是GCD 全称是Grand Central Dispatch,可译为“牛逼的中枢调度器” 纯C语言,提供了非常多强大的函数 GCD的优势 GCD的优势 GCD是苹果公司为多核的并行运算提出的解决方案 GCD会自动利用更多的CPU内核(比如双核、四核) GCD会自动管理线程的生命周期 阅读全文

posted @ 2016-07-16 20:49 柠檬片 阅读(131) 评论(0) 推荐(0)

摘要:1.基本概念 1.1 进程 进程是指在系统中正在运行的一个应用程序。每个进程之间是独立的,每个进程均运行在其专用且受保护的内存空间内。 1.2 线程 1.1 进程 进程是指在系统中正在运行的一个应用程序。每个进程之间是独立的,每个进程均运行在其专用且受保护的内存空间内。 1.2 线程 (1)基本概念 阅读全文

posted @ 2016-07-16 17:24 柠檬片 阅读(116) 评论(0) 推荐(0)