关于NSTimer

Timer使用注意事项:
1.被VC持有,当页面消失,倒计时未结束,未被销毁,导致VC不被dealloc。
VC1推出VC2a,VC2a有一个NSTimer,timer,从VC2a返回VC1,此时VC2a的timer还未结束倒计时。返回VC1时,timer未释放,导致VC2a未被dealloc,此时VC1再次推出VC2b,就会导致有一个未被显示的VC2a仍然存在于内存。如果VC2中有使用通知,RAC等接收数据,会导致VC2a和VC2b同时收到通知,后续逻辑会走两遍。
解决办法:在VC2的viewDidDisappear:方法中,检查self是否已经不在navigationcontroller.viewControllers中,不在则表示已经被抛弃,此时主动释放timer,如果则是跳转了下一个页面,此时不释放timer(再次返回该页面时,不会生成新的VC2)

(持续更新)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容