0

考虑我们正在使用大量自动释放对象实现我们自己的线程。如果是/否,是否必须在这种情况下使用自动释放池,为什么?

4

2 回答 2

4

在您创建的任何线程上都必须有一个自动释放池,因为Cocoa 内部期望有一个,如果它不存在,您将泄漏内存。

Cocoa 总是希望有一个可用的自动释放池。如果池不可用,则不会释放自动释放的对象,并且您的应用程序会泄漏内存。如果您在池不可用时发送自动释放消息,Cocoa 会记录适当的错误消息。


在 Objective-C 框架中链接的应用程序通常必须在其每个线程中创建至少一个自动释放池。

于 2012-06-14T19:35:30.877 回答
3

即使使用单个自动释放的对象,它也是强制性的,否则它会泄漏。

于 2012-06-14T19:36:13.557 回答