2011-03-25 127 views
0

我在應用程序中遇到了非常奇怪的崩潰。它隨機發生。基本上,我有大的滾動視圖包含多個UIWebViews,我從HTML字符串加載。一段時間後,會出現以下崩潰:在webview/scrollview中的iPhone SDK/iOS崩潰?

*** Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[NSMutableArray objectAtIndex:]: index 7 beyond bounds [0 .. 6]' 
*** Call stack at first throw: 
(
    0 CoreFoundation      0x0110dbe9 __exceptionPreprocess + 185 
    1 libobjc.A.dylib      0x00f025c2 objc_exception_throw + 47 
    2 CoreFoundation      0x011036e5 -[__NSArrayM objectAtIndex:] + 261 
    3 CoreFoundation      0x010866e5 -[NSMutableArray removeObject:range:identical:] + 437 
    4 CoreFoundation      0x01086520 -[NSMutableArray removeObject:] + 96 
    5 UIKit        0x0035e7c0 -[UIView(UIViewGestures) removeGestureRecognizer:] + 112 
    6 UIKit        0x005f85c1 -[UIWebSelectionAssistant setGestureRecognizers] + 58 
    7 UIKit        0x004b0d09 -[UIWebDocumentView loadHTMLString:baseURL:] + 286 
    8 CoreFoundation      0x0107e67d __invoking___ + 29 
    9 CoreFoundation      0x0107e551 -[NSInvocation invoke] + 145 
    10 WebCore        0x0217f3c3 _ZL15HandleAPISourcePv + 147 
    11 CoreFoundation      0x010ef01f __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 15 
    12 CoreFoundation      0x0104d28b __CFRunLoopDoSources0 + 571 
    13 CoreFoundation      0x0104c786 __CFRunLoopRun + 470 
    14 CoreFoundation      0x0104c240 CFRunLoopRunSpecific + 208 
    15 CoreFoundation      0x0104c161 CFRunLoopRunInMode + 97 
    16 WebCore        0x02240423 _ZL12RunWebThreadPv + 499 
    17 libSystem.B.dylib     0x901ea85d _pthread_start + 345 
    18 libSystem.B.dylib     0x901ea6e2 thread_start + 34 
) 
terminate called after throwing an instance of 'NSException' 

我真的無法解決這個問題,因爲崩潰是隨機的,似乎是在的CoreFoundation,我不直接控制研究。任何建議?

非常感謝您的幫助!

+0

你是否從一個或多個視圖中刪除手勢識別器?從堆棧跟蹤看來,這是導致問題的原因。如果你確實刪除了手勢識別器,請張貼一些代碼,以便我們看到你在做什麼(錯誤)。 – Krumelur 2011-03-25 20:21:38

回答

1

並非真正解決您的問題,而是:請注意,Apple建議不要在UIScrollViews中放置UIWebViews。根據我的經驗,這當然是可以做到的,但只是被警告說古怪的事情可能會發生。

相關問題: Two resizable UIWebViews inside UIScrollView

+0

+1這是一個很好的鏈接和良好的接觸。 – TechZen 2011-03-25 20:32:38

+0

這可能是問題的原因。與其他視圖相比,UIScrollView會對觸摸/手勢進行不尋常的陷印。一個UIWebView也有一個滾動視圖,所以你有重疊的陷阱。這可能導致觸摸/手勢相關的對象隨機消失。 – TechZen 2011-03-25 20:34:32

+0

感謝您的回覆。有沒有辦法解決這個問題?我基本上使用webview來顯示豐富的內容/ html,並在scrollview中爲每個webview設置禁用用戶交互。我還將webview的所有子視圖的用戶交互設置爲禁用,這是uiscrollview類的一種。 – user613043 2011-03-25 21:32:37

0

的問題是在你的手勢識別。 UIView試圖刪除一個大概不在那裏的識別器。它訪問導致崩潰的6元素數組的索引7。

我會檢查您可能已經完成的手勢的任何自定義。