線程的運行需要不同的模式,去響應各種不同的事件,去處理不同情境模式。
- NSDefaultRunLoopMode: 大多數(shù)工作中默認的運行方式。
- NSConnectionReplyMode: 使用這個Mode去監(jiān)聽NSConnection對象的狀態(tài),我們很少需要自己使用這個Mode。
- NSModalPanelRunLoopMode: 使用這個Mode在Model Panel情況下去區(qū)分事件(OS X開發(fā)中會遇到)。
- UITrackingRunLoopMode: 使用這個Mode去跟蹤來自用戶交互的事件(比如UITableView上下滑動)。
- GSEventReceiveRunLoopMode: 用來接受系統(tǒng)事件,內(nèi)部的Run Loop Mode。
- NSRunLoopCommonModes: 這是一個偽模式,其為一組run loop mode的集合。如果將Input source加入此模式,意味著關聯(lián)Input source到Common Modes中包含的所有模式下。在iOS系統(tǒng)中NSRunLoopCommonMode包含NSDefaultRunLoopMode、NSTaskDeathCheckMode、UITrackingRunLoopMode.可使用CFRunLoopAddCommonMode方法向Common Modes中添加自定義mode。
比如可以優(yōu)化tableview的時候可以設置UITrackingRunLoopMode下不進行一些操作,比如設置圖片等。