定時器的實現(xiàn):
GCD定時器
GCD定時器優(yōu)缺點:
1.它不需要顯示的停掉定時器,由系統(tǒng)幫助我們處理。不需要考慮內(nèi)存泄露問題家制。
2.時間精度上存在問題,存在誤差又是達到0.2秒泡一。
3.這個定時器作用于他自己開辟線程里邊的runloop中颤殴,在tableView中使用不會出現(xiàn)問題。
NSTimer定時器優(yōu)缺點:
1.定時器精度較為準確鼻忠。
2.需要考慮停掉定時器涵但,來解決內(nèi)存釋放的問題。
3.NSTimer是作用于當前的runloop里邊的,如果是把定時器用到tableView里邊可能會出現(xiàn)問題矮瘟。
注意:
為什么要把這類的定時器source設(shè)置為全局變量呢瞳脓?設(shè)置為局部變量不可以嗎?答案是不可以澈侠。先明確子線程的生命周期這個概念:
當子線程的任務(wù)執(zhí)行完之后劫侧,子線程會自動退出。
那這里我們的任務(wù)什么時候結(jié)束呢哨啃?這里結(jié)束的標志依賴于source的生命周期烧栋,source消亡,當source消亡就意味著線程終止拳球。因此我們不能把它生命為局部變量审姓。