我还是比较新的XCode。我正在尝试构建一个iPhone应用程序,在我的application didFinishLaunchingWithOptions
方法运行但不在任何代码内部后,我发现我收到此错误:
[58036:207] *** -[_PFArray release]: message sent to deallocated instance 0x17cd2fe0
我不知道这意味着什么,除了某个数组在某个地方已被释放时被释放的事实?
真正的问题是,我不知道如何使用那里提供的信息来找出错误的位置。没有可查看的代码行,没有变量名等。
如何使用此信息查找我要查找的内容?
答案 0 :(得分:6)
尝试启用僵尸,然后xcode自动将断点放到发生此错误的行。 Google nszombieenabled了解更多信息
编辑:嗯,我的导游没有太多事情要做,
打开乐器。它是一个应用程序,您可以在“〜/ Developer / applications / instruments”(在默认安装路径中)中找到它。乐器将是你的右手,所以掌握它很好。
在打开的屏幕中,您会看到一堆模板。打开一个名为“Zombies”的人。注意:您经常使用名为“Leaks”的模板。它显示了您忘记发布的所有内存泄漏。
从“选择目标”(左上角),选择“选择目标”,然后再选择“选择目标”。从这里,浏览项目目录,然后选择“build / Debug-iphonesimulator / executableName”。在这里,我假设您已在调试配置文件中构建项目,并将nszombieenabled设置为true。如果没有,建立它并回复3.
按录制按钮(左上角)。模拟器将出现,您的应用程序将启动。然后重现您遇到的错误。
乐器会中断显示消息气泡的应用。不要关闭泡沫。从窗口中间的栏中选择“对象列表”而不是“统计”。现在,到目前为止分配的所有对象都位于按其内存地址排序的列表中。这里向下滚动到气泡内写的内存地址。您可以键入快速滚动的首字母。然后双击找到的行。这将带您到代码所在的代码,如果代码是你的话。如果不是,则ios分配对象。但不要担心,双击下方和上方的行,看看它们是否由您分配。这应该给你一个提示可能是问题的提示,因为这些行触发了ios来分配对象(可能)。
这就是我所能说的。我希望你能找到导致这个错误的原因。