在运行时检测Zombie

时间:2012-02-21 13:29:13

标签: objective-c ios memory weak-references nszombie

有没有办法在objective-c中找到运行时的Zombie? 我正在寻找一种方法来防止一个对象在僵尸上调用一个方法,有没有办法在不使应用程序崩溃的情况下检测一个方法?
我确实知道ARC iOS5下的弱引用和常识编程实践 我在想一种方法可能是询问对象大小(我知道可能“内部”只有引用)但如果对象仍然存在,它应该给出一个值,如果它不可能只是单个指针大小。
使用malloc_size(pointerToObject)
可以吗?

更新: 我知道如何运行僵尸检测仪器

3 个答案:

答案 0 :(得分:2)

我不认为Andrea正在询问如何运行仪器来检测僵尸,我想她想防止在运行时调用一个dealloced实例。我不确定在这种情况下malloc大小会返回什么。我认为你所提出的任何事情都与他们对NSZombies所做的事情(从来就不是真正的免费实例)所做的一切都是模仿的,而且只是部分工作。我认为你最好的是无聊的老式编程和配置工具,以防止进行这些调用,而不是试图在运行时捕获错误。

答案 1 :(得分:0)

尝试使用Instruments运行应用程序,然后选择“Zombies”模板。

答案 2 :(得分:0)

在方案菜单上(左上角,运行/停止旁边)。选择“编辑方案...”。将出现一张纸。在那里选择Run / Debug方案。选择中心窗格中的“诊断”选项卡。检查僵尸。