美文网首页iOS收藏
__weak和__strong关键字

__weak和__strong关键字

作者: MrGan先生 | 来源:发表于2018-06-03 15:40 被阅读602次

前言

关于__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中变量进行释放。

相关文章

  • __weak和__strong关键字

    前言 关于__weak和__strong关键字,__weak关键字好理解,用它修饰本类的self,可以防止bloc...

  • 2020-01-08

    strong、weak、assign、unsafe_unretained strong 和 weak strong...

  • iOS属性的关键字

    常用属性关键字:natomic、nonatomic、assign、weak、strong、retain、copy、...

  • iOS 中weak的实现

    只要学过 iOS 的人,都会对 strong、weak、copy等关键字应该都会很熟悉。weak 属性关键字就是弱...

  • ios - weak strong

    ios在arc环境下 引入了 weak 和 strong , 我们来了解下这个2个关键字的作用。 strong 1...

  • 关于iOS中strong,weak,retain,assign,

    iOS 5之后添加了ARC的特性,顺便提出来新的strong、weak关键字。相比而言,retain和strong...

  • ARC机制中对象的内存引用规则

    Strong与Weak的区别? strong为强引用,weak为弱引用。 (weak和strong)不同的是 当一...

  • 面试题

    1、基础数据类型 2、关键字 3、strong、weak、assign、copy 区别1、 strong 修饰符...

  • 【iOS】weak & strong 及自动引用计数机制

    【iOS】weak实现细节学习 1. weak & Strong的基本用法和异同比较 weak 和 strong ...

  • 属性关键字

    @property的属性关键字有:readwrite、readonly、assign、weak、strong、re...

网友评论

    本文标题:__weak和__strong关键字

    本文链接:https://www.haomeiwen.com/subject/eppjsftx.html