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, autorelease是MRC下,在未来的某一的时机减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] 是最完美的解决方法
//怎么更改ARC和MRC,,点击main 上面的蓝色文件,选择 buliding setting ,搜索auto.选择ARC 或者MRC x
return 0;
}