1
我今天遇到了一個奇怪的錯誤與我正在處理的應用程序。 問題出在目錄模塊上。在每個頁面上方都有一個小的黑色區域,因爲頁面沒有填滿100%的屏幕。點擊該區域會導致崩潰。奇怪的與CALayer相關的崩潰日誌
我崩潰日誌看起來是這樣的:
Exception Type: EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_PROTECTION_FAILURE at 0x2fd00fec
Crashed Thread: 0
Thread 0 name: Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0 QuartzCore 0x35d812ac CA::Transaction::ensure_compat() + 0
1 QuartzCore 0x35da2648 CALayerMapGeometry_(CALayer*, CALayer*, void (*)(void*, CA::Mat4<double> const&), void (*)(void*, CA::Mat4<double> const&), void*) + 28
2 QuartzCore 0x35da25f8 -[CALayer convertPoint:fromLayer:] + 52
3 UIKit 0x32457018 -[UIView(Geometry) convertPoint:fromView:] + 68
4 UIKit 0x32456d40 -[UIView(Geometry) hitTest:withEvent:] + 172
5 UIKit 0x32456d50 -[UIView(Geometry) hitTest:withEvent:] + 188
(...)repeat the line above^ until it reached 511
511 UIKit 0x32456d50 -[UIView(Geometry) hitTest:withEvent:] + 188
更時,Xcode結束後不久墜毀。 調試導航顯示我更加奇怪的事情:http://i43.tinypic.com/5txnq0.png,然後用一個巨大的名單不斷,喜歡這裏:http://i41.tinypic.com/2h81ctw.png
我真的不知道從哪裏開始說起... 目錄模塊是老井測試過,而這樣的事情從來沒有發生過。 我知道有很多變數和可能會影響應用程序的東西,但是如果任何人都可以在這裏發現一點點亮光,我會非常感謝 正如我所說,我甚至不知道如何開始接近這個問題,它看起來不像你常規的「訪問一個釋放對象」,「內存泄漏」或我迄今遇到的其他問題
無限遞歸可能更精確地描述了這裏出現的問題,但是,當我以錯誤的方式覆蓋事物時,我已經看到了這種確切的行爲。當你需要一個'[超級的東西]'時,確保你沒有使用'[自己的東西]'。 – 2011-12-20 18:17:27
是的,遞歸更合適......修復。 – 2011-12-20 19:02:52
不,「hitTest:withEvent」沒有在應用程序的任何地方使用,但我確實有一些CALayer實例需要檢查。無限遞歸聽起來似乎合理,我將首先檢查應用程序中的所有迭代。謝謝你的提示,夥計! – BBog 2011-12-21 07:30:25