我在我的iOS应用程序中遇到了一些有线崩溃,并且它不是100%可重现的。从崩溃日志中我可以看到无法识别的选择器(属性访问器)被发送到不正确类型的对象(很可能是僵尸)。无论如何在XCode中我可以看看我是否正在尝试访问zombie对象?
感谢。
答案 0 :(得分:4)
有两种方法。 1.转到XCode左侧的断点部分,向下可以看到添加异常断点的选项。 2.单击菜单栏>产品>方案>编辑方案 选择"诊断"选项卡并单击"启用Zombie Objects"
希望有所帮助:)
答案 1 :(得分:2)
有几种方法。您可以通过设置"启用Zombie Objects"来打开僵尸。复选框在当前构建方案的运行项目的诊断选项卡中为true。
您可以在“乐器”工具中运行应用程序中的Zombies乐器(从项目菜单中选择"配置文件"然后在结果对话框中,选择Memory组的乐器,并查找&# 34; Zombies" instrument。这实际上只是打开仪器的分配工具。
使用任一方法打开僵尸监控时,系统不再释放已解除分配的对象。相反,他们标有一个特殊的签名,表明他们是一个僵尸。然后,当你下一次尝试引用一个时,你会立即得到一个非常具体的崩溃,并且系统仍然可以告诉它在成为僵尸之前它是什么类型的对象,并且使用Instruments甚至可以告诉你程序在哪里被分配