我的问题听起来可能很愚蠢,但我想知道如果我将自动释放对象标记为自动释放会发生什么。它会被释放两次吗?或者什么都没有发生?例如:
Obj * obj = [[Obj create] autorelease];
假设 [Obj create]
返回一个自动释放的对象。
如果我添加另一个自动释放,会发生什么?
最佳答案
是的,发送两次autorelease
会释放对象两次。如果您的 create
方法返回一个自动释放的对象,而您向它发送另一个 autorelease
消息,您的应用将会崩溃,因为您将释放一个已释放的对象。
话虽如此,你为什么不使用新的Automatic Reference Counting (ARC)呢? ?您不必再担心(自动)释放对象。
关于objective-c - 如果将自动释放对象标记为自动释放会发生什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12486624/