建议先到github下载代码:代码代码代码代码代码代码,首当其冲的请大神点个赞与给个star吧,别等看完之后就不想点赞与给star。
一、self的内存管理
self 的内存管理, 什么意思?
1.0 钱戏
确切的说self是一个参数,一个隐藏的参数,还有一个与他相依为命的参数是_cmd。确实是这样的,他不是一个全局变量,也是不是一个全局属性, 你可以看一下下面这张图片。
![](https://img.haomeiwen.com/i1198135/c16c51b7b09cde8b.png)
关于self与_cmd是怎么来的,在网上有很多大神都提及到,不再重复。
1.1 那么问题来了
A) 我想表达的第一个问题是这个:(对应代码中的 "Self在统一方法中提前释放")
![](https://img.haomeiwen.com/i1198135/ad9a6f2b6da44355.png)
上面是怎么回事呢?请到github下载代码代码代码代码代码代码, 搜索 "详细介绍,请参考大神文章"能找到大神博客的地址,不在这里重复copy了[偷笑中😏😏]。
![](https://img.haomeiwen.com/i1198135/715e21f5669964a0.png)
B) 我想表达的第二个问题是这个:(对应代码中的 "WeakStrongBlock循环新情况")
为了防止指针循环,往往会weak一下对应的对象,但是有的时候需要在block中在strong一下,防止对象提前释放的情况。那么问题来了, weak与strong是一对一的么?先来看下面的这个图:
![](https://img.haomeiwen.com/i1198135/b1b878752d017e97.png)
如果将第二个strong删除会发生什么情况呢?
二、NSTimer 的正确使用方式
对应 "NSTimer内存泄露"。
直接下载代码吧,看了代码你就会明白了, 在代码中的介绍也很详细了, 文字很难描述。我把代码地址在写一遍:代码代码代码代码代码代码,要是对您有所收获,请大神点个赞与给个star。
网友评论