内存管理的基本原则:如果使用alloc、copy(mutableCopy)或者retain一个对象时,你就有义务,向它发送一条release或者autorelease消息。其他方法创建的对象,不需要由你来管理内存。
Main.m
#import "Car.h"
int main(int argc, const char * argv[])
{
//创建一个对象
Car *car = [[Car alloc] init]; // 计数值:1-----alloc
NSUInteger count = [car retainCount]; //引用计数
NSLog(@"1.count:%ld",count);
/*-----------------------release和retain的使用--------------------------*/
//计数值加一
[car retain]; //2
NSLog(@"2.count:%ld",car.retainCount);
//可以多次使用
[car retain]; //3
NSLog(@"3.count:%ld",car.retainCount);
//计数值-1
[car release]; //2
NSLog(@"4.count:%ld",car.retainCount);
//可以多次使用
[car release]; //1
NSLog(@"5.count:%ld",car.retainCount);
[car release]; //0,car此时销毁了
// [car test]; 错误,car已经被销毁了,不能调用方法
return 0;
}