一、self的内存管理
self 的内存管理, 什么意思?
1.0 钱戏
确切的说self是一个参数,一个隐藏的参数,还有一个与他相依为命的参数是_cmd。确实是这样的,他不是一个全局变量,也是不是一个全局属性, 你可以看一下下面这张图片。
image.png
关于self与_cmd是怎么来的,在网上有很多大神都提及到,不再重复。
1.1 那么问题来了
A) 我想表达的第一个问题是这个:(对应代码中的 "Self在统一方法中提前释放")
image.png上面是怎么回事呢?请到github下载, 搜索 "详细介绍,请参考大神文章"能找到大神博客的地址,不在这里重复copy了[偷笑中😏😏]。
image.pngB) 我想表达的第二个问题是这个:(对应代码中的 "WeakStrongBlock循环新情况")
为了防止指针循环,往往会weak一下对应的对象,但是有的时候需要在block中在strong一下,防止对象提前释放的情况。那么问题来了, weak与strong是一对一的么?先来看下面的这个图:
image.png
如果将第二个strong删除会发生什么情况呢?
二、NSTimer 的正确使用方式
对应 "NSTimer内存泄露"。