A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© SUPERREN_Hao 中级黑马   /  2016-1-14 15:40  /  785 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

/*
        为什么要进行内存管理?

        移动色别的内存空间及其有限,如果不进行有效的管理,会导致设备的内存空间不足

        苹果设备,ios对app会有内存警告

        20M 警告一次
        45M 警告一次
        120M 直接闪退

        3,内存管理的范围:

        主要时继承了NSObject类的对象?
        为什么继承了NSObjetct 类的对象需要进行内存管理
        
        因为对象存储在内存的堆区而堆区需要程序员自己去管理的空间



内存管理的原理及分类:

        1,对象的所有权及引用计数
   
    对象所有权的概念:
                                  (只有一个对象还在使用它)
        任何对象都可能拥有一个或者多个所有者,只要一个对象至少拥有一个所有者,它就会继续存在
        任何对象的所有权,谁还有拥有它 任何自己创建的对象的都归自己所有

        2,对象的引用的计数
        每个对席那个都有一个自己的引用计数起,用来保存当前对象还有多少个使用者,占用8个字节

        3,对引用计数起的操作
        给对象增加或者减少对象的所有者

        [对象 retain];可以让对象的所有者+1  计数器+1 该方法返回对象本身
        [对象 release];让对对象的所有者-1   计数器-1 (并不是代表释放对象)
        如果对象的引用计数器为0,这要释放该对象,不为0,则存在
        [对象 retainCount]    retainCount消息:获得对象当前的引用计数器值  %lu %tu

        4,对象的销毁
        当对象的引用计数器为0的时候,那么这个对象就要释放
        如果释放的时候,系统会自动的先调用了对象的dealloc方法

        Dealloc 对象的临终遗言多方法,不能手动调用

*/

1 个回复

倒序浏览
谢谢楼主,学习了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马