4

根据另一篇 Stack Overflow 帖子,该drain消息是 Apple 专用电话:

NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
NSLog (@"Hello");
[pool drain];
return 0;

drain用替换是否安全release?我正在尝试移植一个 Objective-C 应用程序以在 Linux(目前是 Ubuntu)上运行。我应该在开始之前就放弃吗?(我已经在尝试开始NSURLConnection工作时遇到了问题)

4

1 回答 1

4

来自 Apple 的文档drain

[...] 此方法的行为与发布相同。[...]

因此,耗尽自动释放池意味着不可避免地释放它。在我看来,Apple 应该弃用它,drain因为它只会造成混乱。

但:

特殊注意事项:
在垃圾收集环境中,release 它是无操作的,因此除非您不想给收集器提示,否则drain在可能为垃圾收集环境编译的任何代码中使用都很重要。

于 2009-09-27T12:50:07.300 回答