即如果我这样做会导致对象立即被释放而不必被池释放?
[[NSArray arrayWithCapacity:100] release];
在文档中找不到关于此的明确解释。
即如果我这样做会导致对象立即被释放而不必被池释放?
[[NSArray arrayWithCapacity:100] release];
在文档中找不到关于此的明确解释。
当对象通常被自动释放时,它可能会崩溃。autorelease
意思是“延迟释放”,所以它会被释放:只是稍后。由于该对象稍后在您手动释放它时将不存在,因此您可能会由于运行时将-release
消息发送到您现在已释放的对象而崩溃。
编辑:请注意,如果您-retain
的对象是自动释放的,则您必须拥有-release
它们:您正在取得所有权。
我意识到现在这很愚蠢,我不应该发布我不拥有的东西。
如果您不希望对象进入自动释放池,您可以手动alloc
执行initWithCapabity
. 如果你这样做,你将不得不release
在某个时候手动操作它。