伪代码如下
-(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];
}