5 memory objective-c nszombie ios
我正在尝试使用NSZombie调试EXC_BAD_ACCESS崩溃.我的应用程序创建了许多大型对象,并且启用了NSZombie后,它们不会被释放,导致应用程序在几秒钟内崩溃.这意味着在应用程序因内存不足而崩溃之前,我甚至无法导致EXC_BAD_ACCESS崩溃.
还有其他选择吗?我可以在特定文件而不是整个项目上启用NSZombie吗?我怎么能调试这个崩溃(我知道它是由UIGestureRecognizer引起的,但我使用它们很多,所以它不会显着缩小问题范围).
谢谢.
编辑:感谢您的建议.我想我可能已经解决了这个问题,并会在经过更多测试后报告.
编辑2:自己解决了这个问题,但选择了答案,这似乎是未来任何类似问题的良好解决方案.
我能想到的就是手动实现;创建一个代理容器,其中包含类型的对象id并指定该对象-forwardingTargetForSelector:以及让它响应-isKindOfClass:等。
禁用代理的 ARC,并让它在指定转发目标时保留自身init并检查自己。retainCount
如果计数为 1,则引发异常或记录警告或其他任何内容。
让可疑类将自己包装起来并返回一个代理作为其单元的最后一行。
为了获得可能的奖励积分,请将其存储[NSThread callStackSymbols]在代理单元中的某个位置(可能在磁盘上),这样您至少可以找出创建错误管理对象的位置。
| 归档时间: |
|
| 查看次数: |
268 次 |
| 最近记录: |