【问题标题】:"__NSAutoreleaseFreedObject(): release of previously deallocated object" out of the blue“__NSAutoreleaseFreedObject():释放先前释放的对象”出乎意料
【发布时间】:2011-03-17 20:11:27
【问题描述】:
我不确定这是否是错误。代码编译得很好(没有警告),但是当我输入一个方法时,一个本地的值(一个 NSMutableString)会在调试器中显示这个内容:
__NSAutoreleaseFreedObject(): release of previously deallocated object
我没有遇到异常,看起来字符串的内容(当时甚至没有分配)是 NSAutoReleaseFreedObject 警告。
发生了什么事?
【问题讨论】:
标签:
cocoa
xcode
debugging
nsmutablestring
【解决方案1】:
如果你不将一个普通的局部变量初始化为任何东西,它的值是未定义的——它可以是任何东西。实际上,它会将恰好位于分配变量的堆栈上的位模式解释为变量类型的值。在这种情况下,变量包含的“任何东西”恰好是该字符串的地址。
【解决方案2】:
它(很可能)意味着您的应用程序的执行与平时不同,并且在您对对象的引用计数中暴露了一个错误。此类问题也可能与不正确的多线程有关。
执行您的应用程序以触发启用僵尸的问题应该可以帮助您找到它。