【发布时间】:2012-05-09 18:08:44
【问题描述】:
我正在处理别人的代码。我以前从未遇到过这样的事情:
return [[[NSObject alloc] init] autorelease];
谁能告诉我这意味着什么以及为什么有人会使用它?为了清楚起见,我不是在问自动释放部分。我会对这段代码有同样的疑问:
-(id)someMethod
{
lots of lines of code
...
return [[NSObject alloc]init];
}
【问题讨论】:
-
简单回答:使用 ARC,您再也不用担心这个问题了。
-
那是完全错误的,理查德。使用 ARC,您仍然必须了解 Objective-C 内存管理的工作原理,但是一旦您了解了,您就不必做那么多体力劳动了。
-
也许在该方法中返回
nil是为了表示错误而保留的,他们想返回不同的东西以获得成功,但并不真正关心什么。不管怎样,糟糕的设计。 -
...或者他们可能想要返回不响应来自某些协议的任何选择器的东西。给定一行几乎毫无意义的代码是不可能的。
-
@Lvsti 从消息/函数返回一个对象并不一定表明设计不好,这是一些 Cocoa/Touch 和 Foundation 库的共同点
标签: iphone objective-c ios object return