我一直在为客户构建一个应用程序,一切都很顺利,直到我开始收到这个错误。这是一种独特的情况,我已经学会了如何使用仪器和 NSZombie,但是我不能仅在模拟器上在 iPhone 上运行带有 NSZombieEnabled 的仪器。我必须在 iPhone 中调试这个问题,因为我正在使用 UIImagePicker 拍照,并且在我拍照后不久发生错误。我也在使用 ARC,所以我根本无法设置发布或保留信息,ARC 禁止它,所以我怀疑它是双重发布或类似的东西。这个问题有 2 个可能的答案。
1:有人知道我是否可以使用照相亭将图像传递给 UIImagePicker 吗?如果我能通过相机屏幕,我可以使用仪器和 NSZombie。
2:有没有办法在不使用 iPhone 重构或注释掉代码的情况下检测哪一行会导致错误?有人知道在 iPhone 上追踪 bad_acces 的有效方法吗?
请记住,我使用的是 ARC,无法在模拟器上进行调试。如果我取出 UIImagePicker 控制脚本,则该错误不会发生,因此我将其范围缩小到我的 CameraViewController 类中的某些内容。由于已有合同,恐怕我无法发布任何代码,您必须是员工才能查看源代码。
抱歉信息有限,但我真的在寻找关于调试的答案,而不是直接解决我的确切代码问题。
将发布回溯(我认为)
(gdb) bt
#0 0x339737e4 in objc_msgSend ()
#1 0x31b30140 in -[UIApplication sendAction:to:from:forEvent:] ()
#2 0x31b300e0 in -[UIApplication sendAction:toTarget:fromSender:forEvent:] ()
#3 0x31b300b2 in -[UIControl sendAction:to:forEvent:] ()
#4 0x31b2fe04 in -[UIControl(Internal) _sendActionsForEvents:withEvent:] ()
#5 0x31b30452 in -[UIControl touchesEnded:withEvent:] ()
#6 0x31b2eddc in -[UIWindow _sendTouchesForEvent:] ()
#7 0x31b2e756 in -[UIWindow sendEvent:] ()
#8 0x31b299fe in -[UIApplication sendEvent:] ()
#9 0x31b29336 in _UIApplicationHandleEvent ()
#10 0x3026c04a in PurpleEventCallback ()
#11 0x3443fce2 in __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ ()
#12 0x3443fca6 in __CFRunLoopDoSource1 ()
#13 0x3443256c in __CFRunLoopRun ()
#14 0x34432276 in CFRunLoopRunSpecific ()
#15 0x3443217e in CFRunLoopRunInMode ()
#16 0x3026b5f2 in GSEventRunModal ()
#17 0x3026b69e in GSEventRun ()
#18 0x31ad0122 in -[UIApplication _run] ()
#19 0x31ace12e in UIApplicationMain ()
#20 0x000034ce in main (argc=1, argv=0x2ffff75c) at /Users/Andrew/Documents/Developing/Xcode Projects/ProjectSVN/Project/trunk/ProjectInterface/ProjectInterface/main.m:16