source1 :蘋果建立用來接受系統發出事件,當手機發生一個觸控,搖晃或鎖屏等系統,這時候系統會發送一個事件到app程序(程序通訊),這也就是為什麼叫基於port傳遞source1的原因,port就是程序埠嘛,該事件可以啟用程序裡執行緒的runloop,比如你點選一下app的按鈕或螢幕,runloop就醒過來處理觸控事件,你可以做個實驗,在主執行緒的runloop中新增一個CFRunLoopObserverRef,用switch輸出runloop6個狀態,這時候你每點選一次螢幕,他就會輸出Runloop六個狀態,然後進入休眠。
source0 :執行performSelectors方法,假如你在主執行緒performSelectors一個任務到子執行緒,這時候就是在程式碼中傳送事件到子執行緒的runloop,這時候如果子執行緒開啟了runloop就會執行該任務,注意該performSelector方法只有在你子執行緒開啟runloop才能執行,如果你沒有在子執行緒中開啟runloop,那麼該操作會無法執行並崩潰。
source1 :蘋果建立用來接受系統發出事件,當手機發生一個觸控,搖晃或鎖屏等系統,這時候系統會發送一個事件到app程序(程序通訊),這也就是為什麼叫基於port傳遞source1的原因,port就是程序埠嘛,該事件可以啟用程序裡執行緒的runloop,比如你點選一下app的按鈕或螢幕,runloop就醒過來處理觸控事件,你可以做個實驗,在主執行緒的runloop中新增一個CFRunLoopObserverRef,用switch輸出runloop6個狀態,這時候你每點選一次螢幕,他就會輸出Runloop六個狀態,然後進入休眠。
source0 :執行performSelectors方法,假如你在主執行緒performSelectors一個任務到子執行緒,這時候就是在程式碼中傳送事件到子執行緒的runloop,這時候如果子執行緒開啟了runloop就會執行該任務,注意該performSelector方法只有在你子執行緒開啟runloop才能執行,如果你沒有在子執行緒中開啟runloop,那麼該操作會無法執行並崩潰。