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