美文网首页
iOS 进阶提升篇

iOS 进阶提升篇

作者: 这评论有毒 | 来源:发表于2016-06-01 17:53 被阅读29次

    __block 和 __weak 的区别
    Blocks可以访问局部变量,但是不能修改,如果需要修改局部变量,需要加上__block

    __block int multiplier = 7;
    int (^myBlock)(int) = ^(int num){
    multiplier ++;
    return num*multiplier;
    };

    上例中若未加__block,则会报错:Variable is not assignable(missing __block type specifier)

    1.__block不管是ARC还是MRC模式下都可以使用,可以修饰对象,还可以修饰基本数据类型。
    2.__weak只能在ARC模式下使用,也只能修饰对象(NSString),不能修饰基本数据类型(int)。
    3.__block对象可以在block中被重新赋值,__weak不可以。

    相关文章

      网友评论

          本文标题:iOS 进阶提升篇

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