一.簡介
RunLoop是iOS中的Event Loop實現(xiàn)驳概,簡單來說是一個do while循環(huán),需要GCD等協(xié)作執(zhí)行;循環(huán)體內(nèi)沒事件需要處理就休眠炕吸,被mach_port喚醒之后處理相應事件后判斷條件繼續(xù)進入循環(huán)姿染。一個線程只能有一個根RunLoop背亥,RunLoop保存在TSD中;一次RunLoop執(zhí)行只能指定一個RunLoopMode悬赏,mode有timer狡汉、source、common和observer等闽颇;幾乎所有的操作都是通過Call out方法進行回調(diào)的盾戴,比如點擊是通過source1到source0再到action回調(diào);要切換mode必須退出當前RunLoop并指定新mode重新執(zhí)行兵多。