------<a href="http://write.blog.csdn.net/postedit">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------
第十讲 OC内存
01-内存分区
堆区 栈区 BSS段 数据区 代码区
内存地址:地址中的内存编号。
02-内存管理
类对象放在堆中,堆手动回收。
局部变量放在栈中,不在作用域,自动回收
03-引用计数器
1 、 占有4个字节,一个对象的引用计数器值为0时,对象占用的内存就会被系统回收。
2、 retain:使引用计数器+1(retain)方法返回对象本身。
3、 release:可以使引用计数器-1。
4、 retaincount:获得当前的引用计数器值。
04-对象的销毁
1、当对象计数器为0时,那么它将销毁,内存被系统回收。
2、当一个对象被销毁时,系统会自动向对象发送一条dealloc消息。
3、一旦重写了dealloc方法,必须调用[super dealloc],并且放在最后调用。
05-野指针和空指针
1、野指针:指向僵尸对象(不可用内存)的指针
2、Exc_BAD_AccEss:访问了一块的内存(已经被回收,已经不可用的内存)。
3、僵尸对象:所占用内存已经被回收的对象,僵尸对象不能在使用。
4、空指针:没有指向任何东西的指针(存储的东西是nil,Null,0),给空指针发消息不会报错。
06-ARC
xcode中的ARC会自动释放在栈中的内存。