OC11_自动释放池

//
//  Dog.h
//  OC11_自动释放池
//
//  Created by zhangxueming on 15/6/18.
//  Copyright (c) 2015年 zhangxueming. All rights reserved.
//

#import <Foundation/Foundation.h>

@interface Dog : NSObject

@property (assign, nonatomic)NSInteger age;

@end



//
//  Dog.m
//  OC11_自动释放池
//
//  Created by zhangxueming on 15/6/18.
//  Copyright (c) 2015年 zhangxueming. All rights reserved.
//

#import "Dog.h"

@implementation Dog

- (void)dealloc
{
    NSLog(@"dog is release");
    [super dealloc];
}

@end
//
//  main.m
//  OC11_自动释放池
//
//  Created by zhangxueming on 15/6/18.
//  Copyright (c) 2015年 zhangxueming. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "Dog.h"

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        //自动释放是就是一个数组,自动释放池会将池中所有的对象都release一次
        Dog *xiaoHei = [[Dog alloc] init];
        xiaoHei.age = 12;
        NSLog(@"retainCount = %li", xiaoHei.retainCount);
        
        [xiaoHei autorelease];//将xiaoHei 的拥有权交给了自动释放池
        //[array addobject: xiaoHei];//2
        //[xiaoHei release];//1
        
        NSLog(@"retainCount = %li", xiaoHei.retainCount);//正确
    
        Dog *xiaoBai = [[Dog alloc] init];
        [xiaoBai autorelease];
        
    }
    
    //可以有多个释放池
    @autoreleasepool {
        
        
        
        
    }
    
    
    return 0;
}

 

posted @ 2015-06-18 20:46  sirzhang  阅读(151)  评论(0编辑  收藏  举报
AmazingCounters.com