关于iOS 强引用和弱引用的粗解

        最近看了很多别人的文章关于强引用(__strong)和弱引用(__weak)的解释,觉得真的比较详尽也挺专业的,但是我推荐给别人看的时候,他们说理解不了引用计数器和持有关系,然后我思考了一下就说了如下一段不够成熟的外行话。

         假设对象为手,强引用为手臂,弱引用为手套。正常情况下,人有手的时候肯定有手臂,所以手臂持有手(初始化+1);如果变异让手指链接这手臂那么这个样子就成了一个环(互相持有),然后死循环(内存泄露);手臂没了(引用计数器为0),那么手也就不存在了(释放内存)。手戴着手套,就是手套里面有手,但是手还是手(引用计数器无变化),如果不戴手套,手还是手;无论戴多少手套手还是手。但是如果手臂没了,手也就不存在,那么手套也就没了(这种情况存在于弱引用调用前,对象引用计数器清零,释放内存,一般用于预防block中对象提前释放)!

        上面是我讲解给那位听得,虽然有点粗俗甚至,关系并不是很正确,但是在代码中粗糙的理解和使用还是可以的,如果有更高雅的说法,麻烦联系我,或者留言回复!

联系方式:QQ 1084356436  备注(粗解)

你可能感兴趣的:(关于iOS 强引用和弱引用的粗解)