关于autorelease一个认识的误区

伪代码如下

-(void)funciton{

A *a= [[ [A alloc]init ]autorelease ];

}

之前疑为 在函数中局部变量声明称autorelease,当函数语句块结束后 a 会释放掉所占内存,但是结果不是,object-c 管理内存的方式有点变态,a 释放是在其对应的autoreleasepool被release的时候才清空!大家务必注意,尤其是刚从c c++转过来的兄弟们

为了可怜的手机内存 还是写成

-(void)funciton{

A *a= [ [A alloc]init ];

……

[a release];

}

你可能感兴趣的:(auto)