美文网首页
block详解

block详解

作者: 愤怒小鸟飞呀飞 | 来源:发表于2018-05-22 16:46 被阅读0次

__weak typeof(self) weakSelf = self;
self.handler = ^{
typeof(weakSelf) strongSelf = weakSelf;
[strongSelf.obserable removeObserver:strongSelf
forKeyPath:kObservableProperty];
};
问题:weak之后在strong,不还是循环引用么?

从引用计数解释:__weak指针之后,block对self不在强应用,strong weakSelf之后,self的引用计数加一,block执行结束之后,self的引用计数减一

如果block内部直接应用self,将在block初始化的地方,截获自动变量,生成一个strong指针指向self,如果block此时是成员变量,将会导致循环引用

举个形象的例子:weak strong dance之后,把block视为另外一个对象,strong weakself相当于在对象内部建立了个局部变量,直接引用self相当于 block内部建立了个成员变量

链接:https://juejin.im/entry/57b131d1c4c971005485d5a2

相关文章

  • iOS Block实例

    iOS之Block详解:Block详解 ViewController.h(ARC) ViewController....

  • Block - block简单的使用

    参考文档 iOS Block详解 一、忘记block格式? 样例一.png 样例二.png 二、Block的定义 ...

  • SDWebImage4.0源码探究(二)具体代码拓展

    代码一 知识点:block参考:iOS中block的详解weakSelf、strongSelf <转自唐巧>Blo...

  • 关于block的理解

    block的类型详解 关于block的知识,在网络上的资料那是相当的多。不过这里还是想来谈谈自己对block的理解...

  • iOS 题目详解 部分三

    主要讲解Block 内部使用strongSelf的理由和用法 iOS 题目详解 部分一iOS 题目详解 部分二...

  • Block详解

    1.Block定义及使用 首先看下Block的定义和使用。 实际使用方法 Block看起来比较复杂,在OC中实际上...

  • Block详解

    1️⃣Block的修饰 ARC情况下( ARC是iOS 5推出的新功能,全称叫 ARC(Automatic Ref...

  • block详解

    __weak typeof(self) weakSelf = self;self.handler = ^{type...

  • Block详解

    __block说明符 Block只能保存局部变量瞬间的值,所以当我们尝试修改截获的自动变量值,就会报错。例如: 该...

  • Block详解

    block的定义,调用等就不介绍了,自行去查资料。 本文介绍内容: 1.block的底层数据结构2.block的类...

网友评论

      本文标题:block详解

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