MSWeakTimer

NSTimer 的官方推荐替代 MSWeakTimer 分析

不羁的心 提交于 2019-12-05 15:35:53
基本介绍 线程安全的MSWeakTimer是NSTimer的替代品,最基本的特点是它不会 retain target 以及支持GCD queues。 问题的提出 关于 NSTimer 中 target 的生命周期问题, 啸笑天 同学在他的 博客 中说的很清楚了。 当 repeat 为 YES 时 NSTimer 会 retains 它的 target,那么target的生命周期就成了问题,完全的交给了这个timer,只有 当timer 调用invalidate后 dealloc 才有机会发生 。 另一个问题是GCD,在苹果的官方文档 中说的很清楚: Special Considerations You must send this message from the thread on which the timer was installed. If you send this message from another thread, the input source associated with the timer may not be removed from its run loop, which could prevent the thread from exiting properly. invalidate必须由安装这个timer的线程发起