美文网首页
__weak 和__block 的区别理解.

__weak 和__block 的区别理解.

作者: yuezishenyou | 来源:发表于2018-08-24 15:05 被阅读0次

参考文献:https://www.cnblogs.com/yajunLi/p/6203222.html?utm_source=itdadao&utm_medium=referral

1. 从引用问题上来讲:
__weak :可以避免循环引用,但有可能会造成block块外对象释放,block块内也被释放的问题(提前释放),所以block块内,会有__strong 的修饰来持有它.来解决提前释放的问题.

__block :并不能解决循环引用的问题. 所以会在block块外对象置为nil的时候, block里在用完之后,也要置为nil.


2. 从作用域上来讲:
__weak :只能修饰对象, 不能修饰基本数据类型.
__block :可以修饰对象,也可以修饰基本数据类型, 并且提升了作用域,在内部改变局部变量的值,在外部再引用的时候,也是改变后的值. 

相关文章

  • iOS开发基础--strong,weak,retain,assi

    weak和strong的区别: copy与retain的区别: __block和__weak修饰符的区别

  • __weak 和__block 的区别理解.

    参考文献:https://www.cnblogs.com/yajunLi/p/6203222.html?utm_s...

  • 基础题

    block和weak的区别 block可以修饰对象和基本数据类型 weak只能修饰对象,也只能在ARC下使用 bl...

  • __block和__weak区别

    1.__block不管是ARC还是MRC模式下都可以使用,可以修饰对象,还可以修饰基本数据类型。 2.__weak...

  • __block和__weak区别

    1.Block可以访问局部变量,但是不能修改 如果修改局部变量,需要加__block __block int a ...

  • __block 和__ weak 的区别

    1:在 block 下循环引用的问题.○ __block 本身并不能避免循环引用,避免循环引用需要在block内部...

  • __block和__weak的区别

    1.__block不管是ARC还是MRC模式下都可以使用,可以修饰对象,还可以修饰基本数据类型。 2.__weak...

  • __block和__weak的区别

    1.__block不管是ARC还是MRC模式下都可以使用,可以修饰对象,还可以修饰基本数据类型。 2.__weak...

  • __block和__weak的区别

    __block和__weak的区别 __block 在ARC和MRC下都可以使用,既可以修饰对象,也可以修饰基本数...

  • __block和__weak的区别

    一、__block 优点: 扩大变量的作用域。 控制对象的生命周期,防止循环引用。 是强引用,在非ARC环境下可以...

网友评论

      本文标题:__weak 和__block 的区别理解.

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