ios中block,NSTimer和dealloc

来源:互联网 发布:python写shell脚本 编辑:程序博客网 时间:2024/05/16 01:18

1、在程序内使用定时器,会引起当前的对象应用计数加1,无法到达dealloc来释放。

解决方法是,在viewWillDisappear中暂停以及失效所有定时器。

2、在block块中,使用self.或者对象的成员变量,会导致self的引用计数被加1,引起循环引用,导致无法释放当前的self。

第一个就是一眼看见的self,block中直接使用self是不对的。

第二个是使用了成员变量,即使不加self.,也会导致self引用计数被加1.

所以,解决方法是__block变量来代替


原创粉丝点击