zoukankan      html  css  js  c++  java
  • set方法的内存管理细节

    一、多个对象之间的内存管理

     1.你想使用(占用)某个对象,就应该让对象的计数器+1(让对象做一次retain操作)

     2.你不想再使用(占用)某个对象,就应该让对象的计数器-1(让对象做一次release)
     3.谁retain,谁release

     4.谁alloc,谁release

    二、set方法的内存管理

    内存管理代码规范:
    1.只要调用了alloc,必须有release(autorelease)
       对象不是通过alloc产生的,就不需要release
     
     2.set方法的代码规范
     1> 基本数据类型:直接复制
     

    - (void)setAge:(int)age
     { 
        _age = age;
     }

     2> OC对象类型
     

    - (void)setCar:(Car *)car
     {
        // 1.先判断是不是新传进来对象
        if ( car != _car )
        {
            // 2.对旧对象做一次release
            [_car release];
     
            // 3.对新对象做一次retain
            _car = [car retain];
        }
     }


     3.dealloc方法的代码规范
     1> 一定要[super dealloc],而且放到最后面
     2> 对self(当前)所拥有的其他对象做一次release

     - (void)dealloc
     {
        [_car release];
        [super dealloc];
     }
  • 相关阅读:
    Android动画系列
    Handler处理机制
    cp命令覆盖文件时不用按Y来确认的方法
    phantomjs
    无界面模式
    win10上安装keras
    MongoDB 排序
    MongoDB 条件操作符
    MongoDB 对象操作
    SQL 和 NoSQL 的区别
  • 原文地址:https://www.cnblogs.com/fengmin/p/6141977.html
Copyright © 2011-2022 走看看