您的位置:首页 > 其它

OC11_自动释放池

2015-06-18 20:46 232 查看
//
//  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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: