//内存管理基本原则:
//如果你对一个对象进行alloc,retain,copy.之后,你就拥有了该对象的所有权,你就必须对它进行release或者autorelease.
@autoreleasepool {
//alloc开辟内存空间,并且将对象的引用计数由0变1.
Person *per1 = [[Person alloc] init];//0 - 1
//retainCount用来获得当前对象的引用计数
NSLog(@"%lu",[per1 retainCount]);
//retain将对象的引用计数加1.
Person *per2 = [per1 retain];//1 - 2
NSLog(@"%lu",[per1 retainCount]);
[per2 retain];//2 - 3
NSLog(@"%lu",[per1 retainCount]);
[per1 retain];//3 - 4
NSLog(@"%lu",[per1 retainCount]);
NSLog(@"%lu",[per2 retainCount]);
//release 将对象的引用计数-1;
[per2 release];//4 - 3
NSLog(@"%lu",[per2 retainCount]);
[per2 release];//3 - 2
NSLog(@"%lu",[per2 retainCount]);
[per2 release];//2 - 1
NSLog(@"%lu",[per2 retainCount]);
[per2 release];//1 - 0
return 0;
}