对Timer改进,不需要再 viewWillDisappear 中释放

来源:互联网 发布:淘宝蚂蚁花呗在哪开通 编辑:程序博客网 时间:2024/06/10 19:52


工程下载地址 : http://download.csdn.net/detail/u014600626/9828428

首先本文受这人的启发, 原文, 原文中写的还是挺复杂的,没看完,但是看了一部分,瞬间收到启发,就写一个简化版的,低配版的自己在工程中用用 .


       首先timer 是干什么的 ? 常用的timer 基本是做2种事情, 一个是延迟一段时间(比如10S) 然后执行某个函数或block ,

还有一种是每隔一段(比如30S)时间执行一个函数或者block,

       延迟操作的最好处理 , 直接这样既可.

        [weakTimer.targetperformSelector:weakTimer.aSelwithObject:userInfo afterDelay:time];



隔一段时间执行一个操作就比较费事了,  隔断时间执行一个操作 , 有点无限循环的感觉, 那就在这段时间sleep.当然不能再主线程sleep, 开一个子线程sleep,然后回到主线程做那个工作. 

       这里用的子线程,而不是runloop,系统的timer用的是runloop. 这里可能是一个隐患,但是,在我的项目中没有出现问题.




当第二页的viewcontroller被释放时, 无论是全局的timer 还是 局部的timer 都被释放了


上面只有 target-action的方式, 工程中还有block方式,需要的下载看看吧.


     

0 0
原创粉丝点击