黑马程序员--OC-内存

来源:互联网 发布:萧山网络问政南阳 编辑:程序博客网 时间:2024/05/19 18:14

------<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会自动释放在栈中的内存。 

0 0
原创粉丝点击