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