首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >替代NSZombie

替代NSZombie
EN

Stack Overflow用户
提问于 2014-11-03 16:35:05
回答 2查看 284关注 0票数 5

我正在尝试使用EXC_BAD_ACCESS调试NSZombie崩溃。不过,我的应用程序创建了大量的大型对象,而在启用NSZombie的情况下,它们不会被发布,导致应用程序在几秒钟内崩溃。这意味着,由于内存不足,我甚至不能在应用程序崩溃之前造成EXC_BAD_ACCESS崩溃。

还有别的选择吗?我可以对特定的文件而不是整个项目启用NSZombie吗?否则,我如何调试这个崩溃(我知道它是由UIGestureRecognizer引起的,但我经常使用它们,因此不会明显缩小问题的范围)。

谢谢。

编辑:谢谢你的建议。我想我可能已经解决了这个问题,并且在经过更多的测试后会报告。

编辑2:我自己解决了这个问题,但选择了答案,这似乎是未来任何类似问题的一个很好的解决方案。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-11-03 16:45:27

我所能想到的就是手动实现它;创建一个包含id类型对象的代理容器,并将其命名为-forwardingTargetForSelector:,并让它响应-isKindOfClass:等等。

禁用代理的ARC,并让它在init期间保持自身,并在指定转发目标时检查自己的retainCount

如果计数为1,则引发异常或记录警告或其他任何内容。

让可疑类自行包装,并返回代理作为其单元的最后一行。

为了获得可能的加值,在代理的单元中将[NSThread callStackSymbols]存储在某个地方(可能在磁盘上),这样您至少可以找到创建了不正确管理的对象的位置。

票数 2
EN

Stack Overflow用户

发布于 2014-11-03 16:40:24

NSZombies用于使用自己内存管理的应用程序。如果你的应用程序使用ARC,那么这不会有帮助。

创建一个新的断点:所有异常

这通常会告诉你你在哪里触发错误的访问。

票数 -3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26718668

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档