【练习】内存管理
#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; } }