#import <Foundation/Foundation.h>
#import "UserInfo.h"
int main(int argc, const char * argv[])
{
// 创建对象
UserInfo *user=[[UserInfo alloc] init];
//查看引用次数
NSLog(@"user retainCount=%li",user.retainCount);
// 保留对象,会增加引用次数
[user retain];
NSLog(@"user retain after retainCount=%li",user.retainCount);
// 释放对象,会递减引用次数
[user release];
NSLog(@"user release after retainCount=%li",user.retainCount);
//自动释放池
@autoreleasepool {
{
[user retain];
NSLog(@"user retainCount = %li", user.retainCount);
// 把对象加到自动释放池,当离开自动释放池的时候,池会把池里里面的所有对象的引用次数,都减少1次
[user autorelease];
}
NSLog(@"user retainCount = %li", user.retainCount);
// 释放对象,把引用次数减少到0,让操作系统能回收内存。
[user release];
return 0;
}
}