<分区>
<分区>
Possible Duplicate:
Is it better to autorelease or release right after?
(前瞻:请不要用ARC来讨论这个话题)
我们公司内部有一个争论,话题是autorelease/early-release的用法。让我解释一下。
场景 1:
NSArray *tempArray = [[NSArray alloc] init];
self.myRetainingProperty = tempArray;
[tempArray release];
场景 2:
self.myRetainingProperty = [NSArray array]; // or [[[NSArray alloc] init] autorelease];
基本上这两种情况都很好,但我很好奇社区使用这些情况的方法是什么?我更喜欢“尽快释放”(场景 1)——尤其是在内存可能很宝贵的 iOS 上,但另一方面,一个自动释放的对象(场景 2)一直存在到下一个运行循环周期不会放太多强调内存占用。
所以我的问题是您更喜欢哪一个,或者有没有 Apple 推荐的方法?
再一次:请让我们暂时忽略 ARC :) ...
谢谢。
最佳答案
就内存使用而言,它们是等效的。唯一的区别是自动释放池的大小。当您将它们分配给一个属性时,当您释放
它时,对象不会被释放,因此内存差异的差异将是在自动释放池中存储一个条目。自动释放池中有一点开销,但在这些类型的情况下通常可以忽略不计。您应该做感觉自然的事情,以及使代码易于阅读/维护的事情。
关于iphone - 关于自动释放/释放使用的另一个 iOS 内存管理说明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8150214/