【发布时间】:2011-11-16 10:33:54
【问题描述】:
(提前通知:请不要用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)一直存在到下一个 runloop 循环不会放太多强调内存占用。
所以我的问题是你更喜欢哪一个,或者有没有苹果推荐的方法?
再一次:请让我们暂时忽略 ARC :) ...
谢谢。
【问题讨论】:
-
我们是否也可以忽略这两个示例都毫无意义,因为它们创建了一个不可变的空数组? ;)
标签: iphone objective-c ios iphone-sdk-3.0