---------------------- ASP.Net+Unity开发、.Net培训、期待与您交流! ----------------------
autorelease说明
1>调用完autorelease对象计数器不变
2>autorelease方法返回对象本身
3>autorelease会将对象放到自动释放池中
4>当自动释放池被销毁时,会对池中里面所有对象做一次release
操作
如:
@autoreleasepool
{
Person *p = [[[Person alloc]init] autorelease]; //计数器+1,且autorelease方法返回对象本身
p.age = 10;
} //自动释放池销毁时,会对池中里面所有对象做一次release
错误写法:
1>alloc之后调用autorelease,然后又调用release
@autoreleasepool
{
Person *p = [[[Person alloc]init] autorelease]; //计数器+1,且autorelease方法返回对象本身
[p release];
}
2>连续调用多次autorelease
@autoreleasepool
{
Person *p = [[[Person alloc]init] autorelease]autorelease];
}
autorelease的好处
1>不用关心对象释放时间
2>不用关心什么时候调用release
使用注意:
1>占用内存较大的对象不要随便使用autorelease
2>占用内存较小的对象使用autorelease,没有太大的影响
---------------------- ASP.Net+Unity开发、 .Net培训、期待与您交流! ----------------------