【练习】内存管理

#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;
    }
    
}

 

posted @ 2014-04-06 09:46  太过于漂流  阅读(117)  评论(0编辑  收藏  举报