《iOS Run Loop 线下分享》的简单总结

来源:互联网 发布:python 日志时间格式 编辑:程序博客网 时间:2024/05/20 01:09


不做长篇大论,不贴代码,只做简单总结

  • AutoreleasePool什么时候释放?

面试经常被问到这个问题,这个问的就是Run Loop这个点
每个runloop中都创建一个Autorelease Pool,在一个runloop进入BeforeWaiting(休眠)的时候AutoreleasePool就会释放
--

  • Run Loop的应用?

有一次面试被问到AFNetWorking 中的URLConnection 与Run Loop有什么关系? ………啊?

网络请求需要Run Loop去驱动,URLConnection中单独开启了一个名为“AFNetWorking”的线程,在runloop run 之前会添加一个 NSMachPort端口,为了保证RunLoop 不退出。这样就有了一个网络请求线程去服务整个应用,不会占用主线程资源
--

  • TableView的延迟加载优化

在cell里面的图片设置放置在defaultRunLoopMode里面,在滑动的时候图片就不会加载。
--
ScrollerView滑动的时候不影响Timer?
默认scheduledTimer创建Timer的时是在NSRunLoopDefaultMode 里,滑动的时候会进入NSRunLoopTrackingMode状态,若不希望timer被ScrollerView影响,需要添加到NSRunLoopCommonModes状态
 

CFRunLoopObserverRef,这个是用来观测RunLoop的状态变化


0 0
原创粉丝点击