当我们需要等一个异步的结果才能向下执行代码,写回调又很麻烦,功能相对简单的时候,就可以插入以下红色部分的代码。 - (IBAction)start:(id)sender{pageStillLoading = YES;[NSThread detachNewThreadSelector:@selecto ...
分类:
移动开发 时间:
2016-06-07 16:15:18
阅读次数:
205
目前在 iOS 和 OS X 中有两套先进的同步 API 可供我们使用:NSOperation 和 GCD 。其中 GCD 是基于 C 的底层的 API ,而 NSOperation 则是 GCD 实现的 Objective-C API。 虽然 NSOperation 是基于 GCD 实现的, 但是 ...
分类:
编程语言 时间:
2016-05-28 10:05:52
阅读次数:
197
说到RunLoop,无论从项目代码或者网上都会有以下这段代码: while (!_isFinish) { NSRunLoop *runloop = [NSRunLoop currentRunLoop]; [runloop runMode:NSDefaultRunLoopMode beforeDate ...
分类:
其他好文 时间:
2016-05-25 16:50:18
阅读次数:
138
1. NSRunLoop的实现机制,及在多线程中如何使用 NSRunLoop是IOS消息机制的处理模式 >1.NSRunLoop的主要作用:控制NSRunLoop里面线程的执行和休眠,在有事情做的时候使当前NSRunLoop控制的线程工作,没有事情做让当前NSRunLoop的控制的线程休眠。 >2. ...
分类:
其他好文 时间:
2016-05-19 09:03:53
阅读次数:
169
一、什么是NSRunLoop NSRunLoop是消息机制的处理模式 NSRunLoop的作用在于有事情做的时候使的当前NSRunLoop的线程工作,没有事情做让当前NSRunLoop的线程休眠 NSTimer默认添加到当前NSRunLoop中,也可以手动制定添加到自己新建的NSRunLoop NS ...
分类:
其他好文 时间:
2016-05-10 18:19:10
阅读次数:
237
1.NSRunLoop是IOS消息机制的处理模式 NSRunLoop的主要作用:控制NSRunLoop里面线程的执行和休眠,在有事情做的时候使当前NSRunLoop控制的线程工作,没有事情做让当前NSRunLoop的控制的线程休眠。 2.NSRunLoop 就是一直在循环检测,从线程start到线程 ...
分类:
移动开发 时间:
2016-05-06 19:03:20
阅读次数:
206
检查主线程卡顿的方法有两个 1.通过主线程runloop添加observer,观察runloop状态变化,不难发现NSRunLoop调用方法主要就是在kCFRunLoopBeforeSources和kCFRunLoopBeforeWaiting之间,还有kCFRunLoopAfterWaiting之 ...
分类:
编程语言 时间:
2016-05-05 00:14:33
阅读次数:
432
什么是消息循环: 消息循环就是NSRunloop这个类 ,每个线程都有自己的消息循环。 主线程的消息循环默认是开启的(需要去检测事件),子线程默认关闭(通常不需要子线程检测事件)。 消息循环的目的: 保证程序不退出、负责处理输入事件(输入源和Timer源)、如果没有事件发生则会让程序处于休眠状态。 ...
分类:
移动开发 时间:
2016-04-21 07:29:51
阅读次数:
170
事件循环NSRunLoop 1、run loop概念 NSRunLoop类封装了线程进入事件循环的过程,一个runloop实例就表示了一个线程的事件循环。 处于事件循环的线程接收的事件源有两种:input source 和 timer source。线程调用便利函数 [NSTimer schedul ...
分类:
移动开发 时间:
2016-04-03 00:16:16
阅读次数:
278
runloop相关基础类定义 1、日期对象 NSDate, NSDateFormatter NSDate的实例表示一个日期,线程可以借助于NSDateFormatter的实例实现NSDate对象和NSString对象的相互转换。 2、定时器 NSTimer 可以使用NSTimer的实例在一个NSRu ...
分类:
移动开发 时间:
2016-03-26 16:57:21
阅读次数:
231