美文网首页
iOS block 使用注意事项

iOS block 使用注意事项

作者: LT_9999 | 来源:发表于2023-11-11 21:20 被阅读0次

    1、强引用和弱引用的问题;
    2、在方法一起使用时,需要的放到方法的最后
    3、外部变量内部不能使用

    默认情况下block是不允许修改外部变量的.
    在block中,如果只使用全局或静态变量,不适用外部变量,那么blcok代码会存储在全局区.

    在arc中,外部变量存在堆中,变量在block内外的地址相同;若在栈中,变量会被copy到堆中.
    如果使用__block修改外部变量,变量会被转移到堆中.
    使用__block修饰,编译器回去直接找变量地址,直接操作变量,而不是复制对象

    在ARC中: 以下情况会block会被复制到堆中
    1> 被执行copy方法
    2> 作为方法的返回值
    3> 将block赋值给附有__strong的id类型或block类型的对象
    4> 在方法名种含有usingBlock的Cocoa或GCD中API传递

    相关文章

      网友评论

          本文标题:iOS block 使用注意事项

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