zoukankan      html  css  js  c++  java
  • Block 内存管理原则

    今天在写代码的时候,遇到了Block一直EXC_BAD_ACCESS的问题,之前一直觉得Block应该像int一样直接assign就可以,不会存在内存的问题,今天查了资料才知道block是继承自NSObject的,一样有内存问题,特此记录一下。
    
    Block内存管理的规则:
    
    1,Block指针会在方法或函数结束后release掉,此时内存是储存在Stack里。
    
    2,如果要在保存Block指针,需要用到copy方法(类似于NSObject),此时内存储存在Heap里。
    
    3,Block函数体里的变量会被自动Retain,等Block结束掉后会Release。
    
    4,__block 前缀标明的变量,不会自动Reatin。
    
    Block Copy时的注意事项:
    
    1,在block里如果直接操作self,则self会自动retain。
    
    2,在block里如果操作类变量,则变量所属的类会自动retain
  • 相关阅读:
    WPF 绘图 和动画
    BZOJ 4028 分块
    操作系统与计算机网络
    go排序-基数排序
    go排序-睡眠排序
    go排序-堆排序
    go排序-构建大顶堆
    go排序 插入排序
    go排序-选择排序
    go排序-冒泡排序
  • 原文地址:https://www.cnblogs.com/zhubaofeng/p/5211661.html
Copyright © 2011-2022 走看看