線(xiàn)程的運(yùn)行需要不同的模式铛碑,去響應(yīng)各種不同的事件狠裹,去處理不同情境模式。
- NSDefaultRunLoopMode: 大多數(shù)工作中默認(rèn)的運(yùn)行方式汽烦。
- NSConnectionReplyMode: 使用這個(gè)Mode去監(jiān)聽(tīng)NSConnection對(duì)象的狀態(tài)涛菠,我們很少需要自己使用這個(gè)Mode。
- NSModalPanelRunLoopMode: 使用這個(gè)Mode在Model Panel情況下去區(qū)分事件(OS X開(kāi)發(fā)中會(huì)遇到)撇吞。
- UITrackingRunLoopMode: 使用這個(gè)Mode去跟蹤來(lái)自用戶(hù)交互的事件(比如UITableView上下滑動(dòng))俗冻。
- GSEventReceiveRunLoopMode: 用來(lái)接受系統(tǒng)事件,內(nèi)部的Run Loop Mode牍颈。
- NSRunLoopCommonModes: 這是一個(gè)偽模式迄薄,其為一組run loop mode的集合。如果將Input source加入此模式煮岁,意味著關(guān)聯(lián)Input source到Common Modes中包含的所有模式下讥蔽。在iOS系統(tǒng)中NSRunLoopCommonMode包含NSDefaultRunLoopMode、NSTaskDeathCheckMode画机、UITrackingRunLoopMode.可使用CFRunLoopAddCommonMode方法向Common Modes中添加自定義mode冶伞。
比如可以?xún)?yōu)化tableview的時(shí)候可以設(shè)置UITrackingRunLoopMode下不進(jìn)行一些操作,比如設(shè)置圖片等步氏。