在最近的項目中,因為要使用定時器輪詢遇到了一個問題,在銷毀計時器時,如果dispatch_source_t處于dispatch_suspend的狀態(tài),這個時候調(diào)用dispatch_cancel的話,就會導致崩潰。
解決方法

1:記錄掛起和開啟的時機,并在dispatch_cancel的時候判斷當前狀態(tài)時什么,如果是dispatch_suspend狀態(tài),就dispatch_resume一下,再dispatch_cancel。
2、為了防止重復創(chuàng)建,在創(chuàng)建??,先判斷一下有沒有計時器,如果有的話,先dispatch_cancel在創(chuàng)建。