博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
内存管理
阅读量:6731 次
发布时间:2019-06-25

本文共 1241 字,大约阅读时间需要 4 分钟。

        //垃圾回收机制:由系统自己管理内存,例如java

        //OC2.0开始支持垃圾回收机制
        //iOS不支持垃圾回收机制
    
        //iOS是通过引用计数来管理内存
        //引用计数是为0,代表此块内存可以被申请到
        //引用计数不为0,代表此块内存正在被占用
        //引用计数+1代表拥有这块内存
        //引用计数-1,代表释放拥有权,当运用计数-1后为0,系统回收内存
        //:对于没有拥有权或者系统收回的内存,不能进行操作

        //**开发人员管理的内存,应该是堆区的内存

    
        //和引用计数相关的方法
        //+alloc:类方法,从堆区申请引用计数为0的内存,然后把引用计数置为1

        retain:实例方法,把该内存的引用计数+1

        release:实例方法,把该内存的引用计数-1

     

        //autorelease:实例方法,把该内存的引用计数,在未来的某个时刻-1
        //:一般会把代码写在自动释放池中,来保证autorelease操作的内存,能够得到释放

        //自定义类做copy----(深拷贝- 拷贝指针+内容)

        //-copy:copy的对象,必须遵循NSCopying协议,实现copyWithNone:方法,copy对引用计数的影响取决于copyWithNone:方法的实现

        //对系统类的copy

        //-copy:拷贝了一个指针,指向该内存区域,并把引用计数+1(浅拷贝-拷贝指针)

        //内存管理原则

        //1.有加必有减,终极目标为0
        //alloc,retain,copy的次数 release,autorelease的次数相同;保证内存使用结束后,及时的释放内存
        //2.谁创建,谁管理,谁增加,谁释放

 

    //当引用计数为0,进入这个方法,系统收回内存

    //初始化,先初始化父类,再初始化子类
    //销毁时,先销毁子类,再销毁父类
    //dealloc 要对用retaincopy修饰的属性进行释放
- (void)dealloc
{
    NSLog(@"系统收回内存");
        //1
    [_name release];
    _name = nil;
        //2
        //    = nil;
    
    [_type release];
    _type = nil;
    
    [super dealloc];
}

 

- (void)setName:(NSString *)name

    //判断新传入的值和之前一样不一样
    //不一样的话,再赋值,来加快执行的效率,降低消耗
{
        //1
//    if (_name != name) {
//        
//        [name retain];//+1,拥有这个新值
//        [_name release];//-1,释放旧的值
//        _name = name;
//    }
        //2
    if (_name != name) {
        [_name release];
        _name = [name retain];
    }
}

 

 

 

 

 

转载于:https://www.cnblogs.com/tian-sun/p/4309607.html

你可能感兴趣的文章
Android官方入门文档[9]支持不同的语言
查看>>
Darwin Streaming Server 6.0.3安装、订制、插件或模块
查看>>
ASCII,Utf8,Unicode编码下的中英文字符大小
查看>>
用“数据”筑起的智慧银川
查看>>
DockOne微信分享(一三三):深入理解Kubernetes网络策略
查看>>
构建无障碍 React Native 应用
查看>>
IOS团队编程规范
查看>>
Spotify编目微服务经验
查看>>
Python基本语法_函数属性 & 参数类型 & 偏函数的应用
查看>>
苹果又一新专利 可通过监测用户使用习惯来省电
查看>>
最令人头疼的Python问题
查看>>
android webview 底层实现的逻辑
查看>>
设备可以和人说话了 就问你怕不怕?
查看>>
万物互联时代,Check Point开启网络安全新未来
查看>>
JavaScript Promise迷你书(中文版)--再学习
查看>>
MapReduce原理
查看>>
中国信通院:为让区块链信息披露可信,我们做了一套黑盒标准
查看>>
对象的组合(第四章)
查看>>
乌云首届安全峰会即将开幕
查看>>
Active Directory权限持久控制之恶意的安全支持提供者(SSP)
查看>>