objective-c - 我可以提前释放自动释放对象吗?

标签 objective-c memory-management autorelease nsautoreleasepool

即如果我这样做,会导致对象立即释放,而不必由池释放吗?

[[NSArray arrayWithCapacity:100] release];

在文档中找不到关于此的明确解释。

最佳答案

当对象通常被自动释放时,它可能会崩溃。 autorelease 意思是“延迟发布”,所以会发布:就在后面。由于该对象稍后将不存在,因为您手动释放它,您可能会由于运行时向您现在释放的对象发送 -release 消息而崩溃。

编辑:请注意,如果您-retain 自动释放的对象,您必须-release 它们:您正在取得所有权。

关于objective-c - 我可以提前释放自动释放对象吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2769726/

相关文章:

iphone - UITableView 中的 UITextFields,输入的值重新出现在其他单元格中

iphone - 如何在iPhone中使用自动释放

c++ - 如果我不使用 'delete' 会怎样?

通过基指针的 C++ 显式析构函数调用

iphone - 为什么自动释放对于 iPhone 应用程序特别危险/昂贵?

cocoa - 在 NSOperation 中自动释放对象安全吗?

ios - UITableViewCell 阴影在滚动后消失

iphone - 防止其他程序员调用 -init 的最佳方法

iphone - 代码行内存泄漏

iphone - 诊断自动释放错误(EXC_BAD_ACCESS)