开发者社区 问答 正文

block可以用strong修饰吗?

block可以用strong修饰吗?

展开
收起
montos 2020-04-13 20:55:22 3801 分享 版权
1 条回答
写回答
取消 提交回答
  • 在MRC环境中,是不可以的,strong修饰符会对修饰的变量进行retain操作,这样并不会将栈中的block拷贝到堆内存中,而执行的block是在堆内存中,所以用strong修饰的block会导致在执行的时候因为错误的内存地址,导致闪退。

    在ARC环境中,是可以的,因为在ARC环境中的block只能在堆内存或全局内存中,因此不涉及到从栈拷贝到堆中的操作。

    2020-04-13 20:55:29
    赞同 展开评论
问答地址: