NSProxy与NSTimer

最近在项目中不同场景下使用了NSTimer,用来计时或者反复操作


NSProxy与NSTimer_第1张图片
计时器相关代码

但是返回上一层界面是,仅仅在dealloc方法中销毁,发现定时器依然存在,因为Controller根本没有被释放,dealloc方法根本不会调用。

解决方法之一:使用NSProxy来破坏循环引用

1.    创建WeakProxy类,继承自NSProxy


NSProxy与NSTimer_第2张图片

2.    设置一个NSObject属性

NSProxy与NSTimer_第3张图片

3.    实现.h中的方法

NSProxy与NSTimer_第4张图片

4.    重写方法

NSProxy与NSTimer_第5张图片

5.    在controller中调用

NSProxy与NSTimer_第6张图片

再次运行返回,执行dealloc方法!

你可能感兴趣的:(NSProxy与NSTimer)