2012-06-14 19 views

回答

4

any thread that you create上必须有一个自动释放池,因为Cocoa internals expect有一个就位,如果它不存在,你将泄漏内存。

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


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

+0

没有自动释放池的真正的自动释放对象是,嗯... –

+0

嗯,它不是_quite_强制性的。它完美地定义了会发生什么:对象泄漏和消息被记录。虽然这通常不是你想要的,但这并不意味着它不可能是你想要的...... – abarnert

3

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

相关问题