一直觉得runloop这东西很神奇、很飘渺,现在还是觉得这玩意很飘渺 -_-.前两天特地花了点时间看了下官方的文档,把我理解的和觉得重要的跟大家分享下,欢迎批评指正。线程实现的几种方式:1. Operation Objects // NSOperation及相关子类2. G C D // dispa...
分类:
其他好文 时间:
2014-11-11 15:57:54
阅读次数:
191
使用容器的block版本的枚举器时,内部会自动添加一个AutoreleasePool:Autorelease对象是在当前的runloop迭代结束时释放的,而它能够释放的原因是系统在每个runloop迭代中都加入了自动释放池Push和Pop当然,在普通for循环和for in循环中没有,所以,还是新版...
分类:
其他好文 时间:
2014-11-01 20:22:42
阅读次数:
208
1.Run loops是线程相关的的基础框架的一部分。
一个run loop就是一个事件处理的循环,用来不停的调度工作以及处理输入事件。使用run loop的目的是让你的线程在有工作的时候忙于工作,而没工作的时候处于休眠状态。
Run loop的管理并不完全自动的。
你仍然需要设计你的线程代码在合适的时候启动run loop并正确响应输入事件。Cocoa和Core Fun...
分类:
其他好文 时间:
2014-10-25 11:58:34
阅读次数:
204
RunLoop这个东西,其实我们一直在用,但一直没有很好地理解它,或者甚至没有知道它的存在。RunLoop可以说是每个线程都有的一个对象,是用来接受事件和分配任务的loop。永远不要手动创建一个runloop,它是跟随着每个线程的。一个RunLoop接收两种source的事件:input sourc...
分类:
其他好文 时间:
2014-10-23 14:23:12
阅读次数:
156
我们在界面上滚动一个scrollview,那么我们会发现在停止滚动前,会发现NSTimer未被执行,就好像scrollView在滚动的时候将timer暂停了一样,在查看相应文档后发现,这其实就是runloop的mode在做怪。
runloop可以理解为cocoa下的一种消息循环机制,用来处理各种消息事件,我们在开发的时候并不需要手动去创建一个runloop,因为框架为我们创建了一个默认的runl...
分类:
其他好文 时间:
2014-10-16 12:26:42
阅读次数:
134
OS的运行时是由一个一个runloop组成的,每个runloop都会执行下图的一些步骤:可以看到,每个runloop中都创建一个AutoreleasePool,并在runloop的末尾进行释放,所以,一般情况下,每个接受autorelease消息的对象,都会在下个runloop开始前被释放。也就是说,在一段同步的代码中..
分类:
其他好文 时间:
2014-10-14 04:16:17
阅读次数:
220
这篇文章是我的【iOS开发每日小笔记】系列中的一片,记录的是今天在开发工作中遇到的,可以用很短的文章或很小的demo演示解释出来的小心得小技巧。它们可能会给用户体验、代码效率得到一些提升,或是之前自己没有接触过的技术,很开心的学到了,放在这里得瑟一下。其实,90%的作用是帮助自己回顾、记忆、复习。一...
分类:
移动开发 时间:
2014-09-16 23:28:51
阅读次数:
335
AlertView的show方法执行后,后面的代码会继续运行,而不会等待用户按键结束再走,这样,如果把弹出的代码写在一个BOOL函数里,没等用户确认直接返回NO就惨了,解决方法:- (BOOL)beforeBackButtonClickEvent {UIAlertView *alert = [[UI...
分类:
其他好文 时间:
2014-09-15 15:29:59
阅读次数:
203
我们知道:只有主线程会在创建的时候默认自动运行一个runloop,并且有timer,普通的子线程是没有这些的。这样就带来一个问题了,有些时候我们并不确定我们的模块是不是会异步调用到,而我们在写这样的延时调用的时候一般都不会去检查运行时的环境,这样在子线程中被调用的时候,我们的代码中的延时调用的代码就会一直等待timer的调度,但是实际上在子线程中又没有这样的timer,这样我们的代码就永远不会被调到。...
分类:
移动开发 时间:
2014-08-28 18:08:05
阅读次数:
163
1.“省电,流畅,优质应用,响应速度快,用户体验好……”也许是众多用户眼中的苹果系统。
2.在众手机商拼CPU主频,拼4核,8核的年代,苹果依然坚持双核,iphone用户体验仍然坚挺。
可以说,RunLoop是IOS比android省电,流畅,用户体验好的主要原因。...
分类:
移动开发 时间:
2014-08-01 00:03:00
阅读次数:
245