定时器经常用的有三类:NStimer、CADisplayLink和GCD定时器
NSTimer注意事项:
1,在使用结束的时候一定要置空,invalidate方法进行释放;
2,手动把timer加到Runloop中的时候,一般使用NSDefaultRunLoopMode,但是当UIScrollView滑动的时候,定时器会收影响(滑动期间,不走定时器方法),可以通过修改mode改变,一般用NSRunLoopCommonModes;
CADisplayLink注意事项:
和NSTimer一样,注意使用invalidate释放,并置空否则会造成内存泄露,适合做界面渲染;
GCD注意事项:
dispatch_source_set_event_handler在子线程,需要使用dispatch_async(dispatch_get_main_queue(), ^ })回到主线程更新UI,
网友评论