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];
     }
  • 相关阅读:
    排序
    wine-qq 安装
    逆元模板
    最长上升子序列
    SGU[115] Calendar
    SGU[123] The sum
    SGU[105] Div 3
    SGU[102] Coprimes
    SGU[100] A+B
    poj-1325-Machine Schedule
  • 原文地址:https://www.cnblogs.com/fengmin/p/6141977.html
Copyright © 2011-2022 走看看