iOS中的RunLoop

Posted xukuangbo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS中的RunLoop相关的知识,希望对你有一定的参考价值。

 

ios中的RunLoop

使用场景

 

1.保持线程的存活,而不是线性的执行完任务就退出了

<1>不开启RunLoop的线程

<2>开启RunLoop的线程

(1)实验用self来持有子线程

(2)实验让线程不结束任务导致进入死亡状态]

(3)Event Loop模式

(4)初步尝试使用RunLoop

(5)初体验产生的疑问

①为什么总是要把RunLoop和线程放在一起来讲?

②如何创建RunLoop?

③线程默认不开启RunLoop,为什么我们的App或者说主线程却可以一直运行而不会结束?

④RunLoop能正常运行的条件是什么?

⑤除了[runLoop run]还有那些方法启动RunLoop?

(6)初体验结论

 

2.保持线程的存活后,让线程在我们需要的时候响应消息。

 

3.让线程定时执行某任务(Timer)

<1>初识NSTimer遇到的坑

<2>使用NSTimer遇到的坑

<3>NSTimer导致的ViewController无法释放问题

<4>performSelecter:afterDelay:

 

4.监听Observer达到一些目的

关于RunLoop的释放问题(RunLoop带autoreleasepool的正确写法)

<1>分析

<2>需要用while循环控制的RunLoop

<3>不需要用while循环控制的RunLoop

<4>关于主线程中autoreleasepool的题外话

 

关于子线程RunLoop切换Mode的思考

 

本文最大干货,子线程中模拟主线程DefaultMode与TrackingMode的切换,长代码预警

参考文档

<1>RunLoop

<2>autoreleasepool

以上是关于iOS中的RunLoop的主要内容,如果未能解决你的问题,请参考以下文章

RunLoop的学习总结

RunLoop 之初探

RunLoop的学习总结

RunLoop的学习总结

iOS 6 中的导航栏看起来像 iOS 7 中的栏

iOS开发:iOS中的多控制器管理