dealloc和release的关系
来源:互联网 发布:拼音读法软件 编辑:程序博客网 时间:2024/06/11 03:29
本文请结合本博客中的《剖析dealloc》进行阅读;
在介绍release之前,先引入“引用计数"的概念,引用计数和内存是密切相关的,这一概念的提出就是针对内存提出的,即:我这一块内存有几个人在用;
引用计数的使用原则:
a 当使用到alloc,new和copy登关键字时(初始化),引用计数一定为1;
b当对象被retain之后,引用计数加1;
c当对象被release之后,引用计数减1;
通过下面的程序来更好地理解引用计数这个概念
NSString * str=[[NSString alloc]init];//初始化,由于用到了alloc,所以指针str指向的内存的引用计数一定为1;
[str retain];//通过引用计数的引用规则可以知道,引用计数加1,此时引用计数为2;
[str release];//根据原则引用计数减1,此时引用计数为1;
如果我们想要查看对象的内存的引用计数,就能通过retaincount这个属性进行查看;
即:
nslog(@"str:%d",str.retaincount);
或者
nslog(@"str:%d",[str retaincount ]);
而当系统引用计数为0之后,系统会自动调用dealloc方法,注意!是自动调用,而不是手动,为什么不能手动,可参见本博客《剖析dealloc》一文;
综上所述:dealloc是否调用完全取决于内存的引用计数,当内存的引用计数为0时,才会调用dealloc方法,而降低引用计数,正是通过release实现的;
- dealloc和release的关系
- dealloc & release
- dealloc函数中变量的release
- Release,Sprint,Story和Version的关系
- release VS dealloc
- dealloc方法与release
- [UIKeyboardLayoutStar release] && [UIKeyboardTaskEntry dealloc]
- init、loadView、viewDidLoad、viewDidUnload、dealloc的关系
- init、loadView、viewDidLoad、viewDidUnload、dealloc的关系
- init、loadView、viewDidLoad、viewDidUnload、dealloc的关系
- loadview,viewdidload,viewdidunload,dealloc之间的关系
- 随笔-浅谈内存管理的常用词:alloc、retain、dealloc、release
- viewDidUnload 和 dealloc 的区别
- viewDidUnload 和 dealloc 的区别
- viewDidUnload 和 dealloc 的区别
- viewDidUnload 和 dealloc 的区别
- viewDidUnload和dealloc的区别
- viewDidUnload 和 dealloc 的区别
- maven学习教程
- 回文素数
- static作用(修饰函数、局部变量、全局变量)
- web.xml中配置servlet
- C#from窗体三次登录失败就退出
- dealloc和release的关系
- H.264中NALU、RBSP、SODB的关系 (弄清码流结构)
- c#datagridview数据库操作
- C++和C#比较1
- 基于GPU平台利用CUDA加速图像处理算法 实时处理高清图像
- UVa 543 - Goldbach's Conjecture
- 第十三周项目项目5 银行系统任务1
- 一个上海程序员的一天工作日志
- 黑马程序员_JAVA_银行业务学习笔记