ios 开发 OC编程 内存管理

//

//  main.m

//  oc _内存

//

//  Created by dllo on 15/11/5.

//  Copyright (c) 2015 dllo. All rights reserved.

//


#import <Foundation/Foundation.h>

#import "Student.h"

int main(int argc, const char * argv[]) {

    //引用计数注意事项

    //1, 自己引起的加1操作一定要自己负责减1

    //2, 只有见到alloc,retain, copy等关键字才去加1

    //3, release是减1的意思,而非释放,当引用计数减为0的时候系统自动释放空间

    //4, autoreleaseMRC,在未来的某一的时机减1;

    //5,不要纠结NSString类型的空间的引用计数

    //6, collection 类型(数组,字典,集合)- 当对象加入时引用计数自动加1,移除的时候自动减1, collection销毁时,自动将所有的成员引用计数减1

    //7, 真正的释放空间是dealloc方法 ,当引用计数为0,系统自动调用,千万不可以自己调用,但是可以自己重写,0第一行必须调用父类的dealloc ([super dealloc])

      Student *stu = [[Student alloc]init];

     //查看引用计数

    NSLog(@"%ld", stu.retainCount);

    // stu release 后引用计数 还是1 原因

    //1当前计数是1,再减去1就是0,没必要再减1

    //标记释放不是立即释放

//    [stu release];

//    NSLog(@"%ld", stu.retainCount);

    

//    数组,字典,集合都是Collection类型,系统自动计数.(释放的时候,所有计数减1);

    

    //便利构造器 return [p autorelease] 是最完美的解决方法

    

    //怎么更改ARCMRC,,点击main 上面的蓝色文件,选择 buliding setting ,搜索auto.选择ARC 或者MRC             x

    

    return 0;

}


posted @ 2015-11-08 14:05  挽月细数风流  阅读(134)  评论(0编辑  收藏  举报