• block不需要__weak的几种情况


    1、UIView 的 animation动画块使用了Block,内部使用self不会循环引用,为什么呢

    答:UIView 动画块是类方法,不被self持有,所以不会循环引用。

    2、Monsary也使用了Block来设置控件的布局,Block内部使用self,为什么不会循环引用呢

    答:看源码可以看出,Monsary使用的Block是当做参数传递的,即便block内部持有self,设置布局的view持有block,但是block不持有view,当block执行完后就释放了,self的引用计数-1,所以block也不会持有self,所以不会导致循环引用。

    3、reactiveCocoa如果不使用@weakify @strongify,会循环引用,两个宏就等于下边代码:

    __weak typeof(self) weakSelf = self;

    __strong typeof(weakSelf) strongSelf = weakSelf;

  • 相关阅读:
    MD5算法MFC实现
    asp.net2.0新特点
    file format
    C专家编程第二章学习笔记
    Bye Czech golden generation
    中间层
    学完谭C之后
    C语言学习之路
    荀子劝学篇
    C语言常用转义字符表
  • 原文地址:https://www.cnblogs.com/wzl666/p/12792964.html
Copyright © 2020-2023  润新知