1.对象如果不存在了,请将指针置空,养成良好的内存控制习惯。

2.[super dealloc];要在dealloc函数的最后调用(类似于C++的析构函数),这样就可以在自身被销毁之前再次调用自身的函数。

3.对于某些已经使用(alloc,copy和retain)分配内存的对象,可以直接release,对于可能出现分配内存的对象需要做一次判断再去release(比如点击事件响应的)。

4.不用去依靠retainCount输出来判断内存计数器,apple官方文档都申明过可能有误显示

5.在调试模式下可能没有的内存问题会在运行模式下出现,这个时候就要根据经验来判断了,比如首先应该想到的就是dealloc函数中是否写的有问题,或者要考虑这个对象中是否有autorelease的对象被放在dealloc中了,引起了内存的混乱(事实证明有这种情况)

6.最关键的一条:dealloc函数可能在你调试的时候根本没有被调用,原因可能会是对self.XX对象的赋值造成了retainCount+1,这样就会出现对象release的时候没有调用dealloc,所以在进行了(alloc,copy和retain)之后要及时的release,并且自己一定要清除哪个是最后的release,会调用dealloc

以下举个例子:

- (void)dealloc {

[self closeConnection];    //-------------------我可以在这里调用类似关闭连接的操作
    [Table release];              //-------------------像这种已经被分配内存的对象就可以直接销毁
    [SearchBar release];
    
    [keyString release];
    [requestArray release];
    [categoryArray release];
    [flagArray release];

if (categoryViewControl!=nil) {   //-------------------这种对象的存在有可能性的需要做一次空值判断
        [categoryViewControl release];
    }
    
    [super dealloc];

}

转载于:https://www.cnblogs.com/wangbaixue/p/5192175.html

关于生命周期函数dealloc的使用小结相关推荐

  1. Vue生命周期函数详解

    生命周期图 生命周期方法 var vm = new Vue({el: '#app',data: {msg:'ok'},methods: {show:function () {console.log(& ...

  2. react生命周期函数

    在react中,生命周期函数指的是组件在加载前,加载后,以及组件更新数据和组件销毁时触发的一系列方法.通常分为以下几类: 组件加载的时候触发的函数:constructor .componentWill ...

  3. uniapp里的mounted_uni-app 生命周期函数执行顺序

    {{message}} 点击 import { mapState, mapMutations } from 'vuex'; var key = 0; export default { data() { ...

  4. 小程序的生命周期函数?

    onLoad Function 生命周期函数--监听页面加载 onReady Function 生命周期函数--监听页面初次渲染完成 onShow Function 生命周期函数--监听页面显示 on ...

  5. vue源码解析pdf_Vue源码全面解析八 callHook函数(触发生命周期函数)

    首先我们打开'src/core/instance/lifecycle.js'文件,代码如下: export function callHook (vm: Component, hook: string ...

  6. vue openlayer单击地图事件循环多次执行_VUE生命周期函数面试题

    什么是 vue 生命周期 vue生命周期是指vue实例对象从创建之初到销毁的过程,vue所有功能的实现都是围绕其生命周期进行的,在生命周期的不同阶段调用对应的钩子函数实现组件数据管理和DOM渲染两大重 ...

  7. reactjs组件的生命周期函数:getSnapshotBeforeUpdate更新之前获取快照

    reactjs组件的生命周期函数:getSnapshotBeforeUpdate更新之前获取快照

  8. reactjs组件的生命周期函数:getDerivedStateFromProps

    reactjs组件的生命周期函数:getDerivedStateFromProps

  9. 【视频】vue生命周期函数

    P15vue生命周期函数 https://www.bilibili.com/video/av91679349?p=15

最新文章

  1. SANBoot安装系统
  2. RDKit | 将rdMolDraw2D和RDKit生成的结构图输出到Excel
  3. 什么是迁移学习?迁移学习的超参数有哪些?
  4. PAT 1042. 字符统计
  5. win7-elasticsearch环境搭建
  6. 广州大学专业选修课介绍-----------Linux操作系统分析及实践
  7. PHP的password_hash()使用实例
  8. 利用CMD在vim中直接编译
  9. 牛腩学ASP.NET CORE做博客(视频)
  10. 批量下载CSS中的图片
  11. 天勤率辉考研数据结构2021
  12. RAID控制器是什么?
  13. 成功解决RuntimeError: cuda runtime error (30)
  14. 双系统启动修复完整解决方案
  15. 基于Self-Hosted模式搭建K8S可观测平台Pixie(内附填坑方法)
  16. md文件如何编辑和转换(不依赖插件Markdown Viewer)
  17. Linux设置软件开机自启
  18. 10款最佳在线地图软件介绍
  19. 5G技术使智能家居个性化家庭成为现实
  20. 【EMV L2】Select PSE应用选择相关的卡片数据格式

热门文章

  1. Spring @Import
  2. gitlab 删除仓库
  3. python 链接数据库
  4. oracle database version,Oracle Database Version History
  5. 问题 | golang开发之go.mod的使用方法
  6. Linux学习总结(28)——Linux主机加固
  7. 炒了8年的概念,到底该如何理解DevOps这个词?
  8. php显示几个字符串,比较php中的两个字符串并显示字符差异
  9. 用java里的junit框架_使用Java JUnit框架里的@SuiteClasses注解管理测试用例
  10. sigv linux 信号,LINUX 信号处理