您好,欢迎来到二三四教育网。
搜索
您的当前位置:首页__weak和__strong关键字

__weak和__strong关键字

来源:二三四教育网

前言

关于__weak和__strong关键字,__weak关键字好理解,用它修饰本类的self,可以防止block中循环引用问题,那么__strong关键字用在block中,又是怎么回事呢?

正文

废话少说,先上代码:

图1

创建一个SampleObject类对象,并且self.sample对其引用,在没有__strong修饰符修饰weaksample的情况下,3秒后对其释放,打印结果如何,看下图:

图2

在打印第四次sampleobject后(3秒后),因为self.sample置空,之后的结果都是(null)。

现在我们把图1的28行注释去掉,看下打印结果如何:

图3

可以看到即使3秒过后仍然是打印SampleObject对象,while循环结束后才对其进行释放(dealloc SampleOjbect)。

__strong修饰符作用即在block中变量如果在别处进行了释放,那么系统会等待block执行结束后才对block中变量进行释放。

Copyright © 2019- how234.cn 版权所有 赣ICP备2023008801号-2

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务