Tag: nszombieenabled

无法从僵尸中获得关于崩溃的线索

我从控制台得到这个错误 [Not A Type _cfTypeID]: message sent to deallocated instance 我也在Diagonotics enalbe僵尸,但不能得到任何提示错误是什么。 我的xcode被挂起,并把下面的消息扔给我: 僵尸并没有像我一样向我展示任何东西 什么是错误,如何使用僵尸以正确的方式来捕捉错误..

为什么在使用ARC + NSZombieEnabled时不会释放对象

我将我的应用程序转换为ARC,并注意到在视图控制器被释放时,在我的一个视图控制器中分配的一个对象没有被解除分配。 花了一段时间才弄明白为什么。 我在debugging过程中为我的项目启用了“僵尸对象”,事实certificate这是事实。 考虑下面的应用程序逻辑: 1)用户调用RootViewController中的动作,使SecondaryViewController被创build并通过presentModalViewController:animated呈现presentModalViewController:animated 。 2) SecondaryViewController包含一个ActionsController ,它是一个NSObject子类。 3) ActionsController在初始化时通过NSNotificationCenter观察一个通知,当它被解除分配时停止观察。 4)用户closuresSecondaryViewController返回到RootViewController 。 启用僵尸对象closures,上述工作正常,所有的对象被释放。 使用ActionsController上的启用僵尸对象不会解除分配,即使SecondaryViewController被释放。 这导致我的应用程序b / c中的问题NSNotificationCenter继续发送通知给ActionsController和结果处理程序导致应用程序崩溃。 我创build了一个简单的应用程序来说明这个在https://github.com/xjones/XJARCTestApp 。 查看与启用僵尸对象控制台日志开/关来validation这一点。 问题(S) 这是启用僵尸对象的正确行为? 我应该如何实现这种types的逻辑来消除这个问题。 我想继续使用启用僵尸对象。 编辑#1:根据凯文的build议,我已经提交给苹果和openradar在http://openradar.appspot.com/10537635 。 编辑#2:澄清一个很好的答案 首先,我是一名经验丰富的iOS开发人员,我完全了解ARC,僵尸对象等。如果我错过了某些东西,当然,我很欣赏任何照明。 其次,对于此特定崩溃的解决方法是,当secondaryViewController被释放时,将observer作为观察者移除。 我也发现,如果我明确地设置actionsController actionsController = nil当secondaryViewController dealloc'ed它将被dealloc'ed。 这两个都不是很好的解决方法B / C它们实际上要求您使用ARC,但代码,如果您不使用ARC(例如显式dealloc中的零iVars)。 一个特定的解决scheme也无助于确定何时这将成为其他控制器中的问题,因此开发人员可以确定何时/如何解决此问题。 一个好的答案将解释如何确定性地知道,当使用ARC + NSZombieEnabled时,你需要做一些特殊的对象,所以它将解决这个具体的例子,也适用于整个项目作为一个整体不离开其他类似的潜力问题。 完全有可能没有好的答案,因为这可能是XCode中的一个错误。 感谢所有!

NSZombieEnabled应该closures发布的应用程序或不?

随着NSZombieEnabled打开它将提供一些防范在运行时发生的EXC_BAD_ACCESS问题。 我正在做双重努力,以确保没有/less量内存泄漏,但我可能会释放,所以NSZombieEnabled打开将有助于防止这种情况,我是对的吗? 或者NSZombieEnabled打开,所有内存释放操作将被转换为无操作? 这将是一个大问题是这样的。

Xcode仪器 – 僵尸 – 我在找什么?

当我运行Xcode中的项目/configuration文件,并select“ 僵尸 ”,应用程序运行在模拟器启用“ NSZombie detection ”。 但是,我应该寻找什么来告诉我,有一个问题? 我看到的只是运行分配工具和下面的统计数据。 它真的会告诉我一个Zombie被发现了吗?