在捕捉向已回收对象发送消息的异常时,可使用僵尸对象.若要使用僵尸对象,则要在Scheme->run中勾选"Enable Zombie Objects".
若开启僵尸对象,在回收对象时,会将该对象转化为僵尸对象.即将回收对象的isa指针指向特殊的僵尸对象,该僵尸对象是_NSZombie_的拷贝.
僵尸类能响应所有的选择子.
在消息转发机制的___forwarding___函数中,会判断接收消息的对象所属的类名,若名称前缀为"_NSZmobie_",就表示这是一个僵尸对象,然后会将该僵尸对象的原始对象,收到的选择子,僵尸对象对应的指针值.在与Xcode的Instruments工具搭配能发挥出更好的效果.