delegate为什么要用weak

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/ldszw/article/details/50880589

至于delegate为什么要用weak,主要是考虑到循环引用的问题!

首先看下图:
这里写图片描述

这张图其实很好的解释了代理用weak的问题!在我们的tableViewController中,控制器的view就是tableView,这就相当于tableViewController强引用着tableView,然后当我们设置delegate的时候,一般都是让tableViewController成为代理,这个时候代理如果也使用strong,那么tableView的delegate又强引用着tableViewController,所以导致循环引用,因此代理得用weak!

猜你喜欢

转载自blog.csdn.net/ldszw/article/details/50880589