关于autorelease的想法...
自己刚开始学object-C开发,还处于理论阶段,看到了autorelease这个东西.
是说的是在释放自动变量池的时候才会释放池中的变量.
假设一个函数,通常看到的调用代码是
void Fun1()
{
NSAutoreleasePool *pool;
pool = [[NSAutoreleasePool alloc]init];
ClsA *A=[[ClsA alloc]init];
//A do sth...
[A autorelease];
[pool release];
return;
}
既然自动变量池是在release的时候才会释放资源,是否可以将代码改为;
void Fun2()
{
NSAutoreleasePool *pool;
pool = [[NSAutoreleasePool alloc]init];
ClsA *A=[[[ClsA alloc]init]autorelease];
//A do sth...
[pool release];
return;
}
如果在定义变量的时候都这样做了,岂不是能够更容易的避免内存泄露了?
但是没有看到过这种用法,why ?
求解...