其中哪一个是更好的实践?
A)稍后自行保留和释放对象
NSMutableArray* array = [[self getArray] retain];
....
[array release];B)从返回对象的函数中自动释放
getArray {
NSMutableArray* returnedArray = [[[NSMutableArray alloc] init] autorelease];
.....
return returnedArray;
}发布于 2011-07-24 05:20:24
你可以阅读并遵循苹果关于memory management和performance的指南。
我个人认为选择一种方式而不是另一种方式的原因:
使用自动释放pros:
缺点:
使用保留/释放pros:
当您的内存是used/freed.
缺点:
我认为,无论你选择哪种风格,归根结底都取决于你的代码所处的环境,并根据利弊选择最好的风格,我不认为有任何一个答案。
发布于 2011-07-24 05:03:25
当涉及到Objective-C中的内存管理时,最简单的经验法则是,您应该释放任何显式分配(alloc)、复制(copy)、更新(new)或保留(retain)的内容。
发布应该在上述操作的范围内完成。如果为方法返回的对象分配空间,则应在返回前自动释放该对象。因此,考虑到您提供的两个选项,B是推荐的做法。
发布于 2011-07-24 04:58:10
如果你想返回一个对象,你必须使用第二种方法。在所有可能的情况下,您都应该使用保留-释放方法,因为这样使用的内存更少。
https://stackoverflow.com/questions/6803243
复制相似问题