开发者社区> 问答> 正文

block发生copy时机?

block发生copy时机?

展开
收起
montos 2020-04-13 20:56:22 1476 0
2 条回答
写回答
取消 提交回答
  • 有点尴尬唉 你要寻找的东西已经被吃掉啦!

    1.调用Block的copy实例方法

    2.Block作为函数返回值返回时

    3.将Block赋值给附有__strong修饰符id类型的类或Block类型成员变量时

    4.在方法名中含有usingBlock的Cocoa框架方法或Grand Central Dispatch的API中传递Block时

    2020-04-14 17:27:32
    赞同 展开评论 打赏
  • 一般情况在ARC环境中,编译器将创建在栈中的block会自动拷贝到堆内存中,而block作为方法或函数的参数传递时,编译器不会做copy操作。

    • block作为方法或函数的返回值时,编译器会自动完成copy操作。
    • 当block赋值给通过strong或copy修饰的id或block类型的成员变量时。
    • 当 block 作为参数被传入方法名带有 usingBlock 的 Cocoa Framework 方法或 GCD 的 API 时。
    2020-04-13 20:56:33
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载