我一直在爲客戶端構建應用程序,一切都很順利,直到我開始出現此錯誤。這是一個獨特的情況,我已經學會了如何使用樂器和NSZombie,但是我不能在模擬器上使用iPhone上的NSZombieEnabled來運行樂器。我必須在iPhone中調試此問題,因爲我使用UIImagePicker拍攝照片,並在拍攝照片後不久發生錯誤。我也使用ARC,因此我無法設置發佈或保留信息,ARC禁止它,所以我懷疑它是雙發佈還是類似的東西。這個問題有兩個可能的答案。EXC_BAD_ACCESS使用ARC並且無法在模擬器上跟蹤
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
在模擬器上,您可以(暫時)更改代碼以從中選擇照片庫,而不是 - 你應該能夠調試它然後(這也將有助於縮小你的bug的地方:) – deanWombourne 2012-07-20 16:47:42
它打開照片庫,以取代在模擬器上的相機,我怎麼能添加一張照片? – Xav 2012-07-20 17:27:32
將圖像拖放到模擬器上 - 這將在Safari中打開。長按圖片,你可以選擇保存。 – deanWombourne 2012-07-20 17:28:56