我的申请中有一点混乱。
如何在iPhone中检查对象是否已被释放?
答案 0 :(得分:12)
抱歉,您正试图解决错误的问题。
如果遵循一些简单的规则,绝对不需要“找出”对象是否已被释放;你会知道的。
简单的规则是:
请勿使用retainCount
。如果对象已被解除分配(即,其保留计数为零),则无法对该对象执行任何操作,因为它不再存在!此外,即使它是当前一个,也就是说它不在自动释放池中,并且下次看时将为零?
答案 1 :(得分:2)
如果对象已发布,则无法访问其属性。
您可以使用Profiler(NSZombies)来检测哪些对象被释放然后被访问。
答案 2 :(得分:2)
启用僵尸时对该对象的任何消息都足够了。如果程序崩溃是因为你给僵尸发了消息,那么你就知道了!
如果您在仪器中启用了引用计数跟踪,则可以查看每个引用计数事件的每个帧,并找出引入了无效引用计数偏移的位置。