关闭

block在ARC和MRC中的区别

443人阅读 评论(0) 收藏 举报
block在ARC和MRC中的声明引用有些区别.
     /**
     block可以存储在栈中,也可以在堆中
     默认存储在栈中,不需要管理内存
     存储在堆中的block会对block进行retain操作
     */
    //(MRC)block在堆中时,不想对block进行retain操作,前面加__block
    //(ARC)前面加__weak或__unsafe_unretained
    //__weak和__unsafe_unretained的区别:__weak则在释放时会对对象赋值nil,后者不会
    //Block_copy使栈中的block转移到堆中,并对block会引用的对象进行retain操作
    //避免block引用的对象进行retain操作,在引用对象声明时前面加__block
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:54026次
    • 积分:1232
    • 等级:
    • 排名:千里之外
    • 原创:72篇
    • 转载:0篇
    • 译文:0篇
    • 评论:3条
    文章分类
    最新评论