【多线程-第一天-NSThread-复习weak和strong-以及自动释放池-autorelease Objective-C语言】

一、下面,我们来复习一下weak和strong

通知

1.什么时候用strong和weak

OC对象用strong

连线的UI控件为什么用weak

controller ==》 view ==》 view.subViews ==》imageView 强引用

controller --》 imageView 弱引用

controller --》imageView这个位置换成strong也可以,但是不建议,如果一个对象被多个对象强引用,

这多个对象中有一个对象忘记释放,那么该对象也不能释放

通知

为什么连线的UI控件要用weak呢,我们来看啊,

如果,我把这个控件直接拖上来,我拖上来,其实背后,就意味着很多代码,首先要创建一个Label、把这个Label添加到self.view.subviews上,

self.view.subviews,

通知

self.view,里面有一个方法,叫做addSubview,注意,addSubview,是往这个view里边添加一个子控件,

子控件添加到什么位置了,self.view.subviews,添加到这个里边儿来了,

通知

self:控制器,对这个view,是强引用,

view:对subviews这个属性,是强引用,

我们又把这个控件添加到subviews里边儿来了,所以,subviews,这个属性,对这个控件是强引用,

所以,间接的,self,对你加进来的这个控件儿,是强引用关系,已经有一个强引用关系了,

如果,我们在做连线的时候,

通知

连线的时候,是不是一个weak,这个时候,一个weak啊,为什么它是weak,因为刚才我们分析过了,是不是已经有一个强引用了,如果这块儿,再写成strong,

通知

有问题吗?没有问题,会发生循环引用吗,不会发生循环引用,我们来分析一下啊,这是控制器,

通知

从左往右、依次是:控制器、控制器的视图、控制器视图的subviews属性、

subviews属性,后边是Label,

通知

这块儿,一个强引用、接着一个强引用、

通知

如果Controller,这块儿我们就写成strong了,这个时候,Controller,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

清风清晨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值