2013-07-26 97 views
5

我試着去弄清楚這個問題,因爲不管我做什麼讓我的問題工作,我不斷收到此崩潰UIWebView的崩潰,我不知道爲什麼有麻煩

繼承人的跟蹤

$0 = 0x1f8f9a10 (

    0 ???         0x02b04144 0x0 + 45105476, 
    1 TheAppName       0x001016e0 start + 0, 
    2 Foundation       0x34334599 + 72, 
    3 WebCore        0x399e7bfb + 82, 
    4 UIKit        0x3595b493 + 182, 
    5 UIKit        0x358d7d1f + 382, 
    6 UIKit        0x358d7d33 + 402, 
    7 UIKit        0x358d7d33 + 402, 
    8 UIKit        0x358d7431 + 360, 
    9 UIKit        0x358d72c3 + 30, 
    10 UIKit        0x35ce2fef + 386, 
    11 UIKit        0x35ce3879 + 464, 
    12 UIKit        0x35ce63d3 + 698, 
    13 UIKit        0x35ce5e49 + 552, 
    14 UIKit        0x35ce28dd + 172, 
    15 UIKit        0x358d8803 + 258, 
    16 QuartzCore       0x35682d8b + 214, 
    17 QuartzCore       0x35682929 + 460, 
    18 QuartzCore       0x3568385d + 16, 
    19 QuartzCore       0x35683243 + 238, 
    20 QuartzCore       0x35683051 + 316, 
    21 QuartzCore       0x356ba0f7 + 254, 
    22 QuartzCore       0x356b9ff1 + 64, 
    23 IOMobileFramebuffer     0x37915fd7 + 154, 
    24 IOKit        0x346b4449 IODispatchCalloutFromCFMessage + 192, 
    25 CoreFoundation      0x33a975db + 118, 
    26 CoreFoundation      0x33aa2173 + 34, 
    27 CoreFoundation      0x33aa2117 + 138, 
    28 CoreFoundation      0x33aa0f99 + 1384, 
    29 CoreFoundation      0x33a13ebd CFRunLoopRunSpecific + 356, 
    30 CoreFoundation      0x33a13d49 CFRunLoopRunInMode + 104, 
    31 GraphicsServices     0x375ca2eb GSEventRunModal + 74, 
    32 UIKit        0x35929301 UIApplicationMain + 1120, 
    33 TheAppName       0x001332d9 main + 116, 
    34 TheAppName       0x00101708 start + 40 
    ) 

我在做什麼是使用UIPageViewController作爲幻燈片。有時當頁面轉動時,我需要加載一個帶有web視圖的HTML文件,這些html文件包含用於爲HTML頁面中的對象設置動畫的html代碼。所以每次我創建一個新的視圖控制器以顯示在pageViewController中時,我需要銷燬webview,因爲從一個動畫到另一個動畫時,aniamtion不會生成動畫。有時它有效,但有時它會導致這次崩潰。現在我不知道如何閱讀這篇文章,因爲webviews沒有記錄如此詳細的信息。那麼有人知道這裏究竟發生了什麼?

代碼吐出時,它打破



    WebCore`WebCore::Page::setDeviceScaleFactor(float): 
    0x399edbc0: push {r4, r5, r7, lr} 
    0x399edbc2: mov r4, r0 
    0x399edbc4: vmov d0, r1, r1 
    0x399edbc8: vldr s2, [r4, #100] 
    0x399edbcc: add r7, sp, #8 
    0x399edbce: vcmpe.f32s2, s0 
    0x399edbd2: vmrs APSR_nzcv, fpscr 
    0x399edbd6: it  eq 
    0x399edbd8: popeq {r4, r5, r7, pc} 
    0x399edbda: vstr s0, [r4, #100] 
    0x399edbde: ldr r5, [r4, #56] 
    0x399edbe0: cbz r5, 0x399edc22   ; WebCore::Page::setDeviceScaleFactor(float) + 98 
    0x399edbe2: ldr.w r0, [r5, #804] 
    0x399edbe6: movs r1, #1 
    0x399edbe8: bl  0x39a3c3c0    ; WebCore::Document::styleResolverChanged(WebCore::StyleResolverUpdateFlag) 
    0x399edbec: add.w r0, r5, #28 
    0x399edbf0: movs r1, #0 
    0x399edbf2: bl  0x399f9ed0    ; WebCore::FrameTree::traverseNext(WebCore::Frame const*) const 
    0x399edbf6: mov r5, r0 
    0x399edbf8: cmp r5, #0 
    0x399edbfa: bne 0x399edbe2    ; WebCore::Page::setDeviceScaleFactor(float) + 34 
    0x399edbfc: ldr r0, [r4, #56] 
    0x399edbfe: cmp r0, #0 
    0x399edc00: beq 0x399edc22    ; WebCore::Page::setDeviceScaleFactor(float) + 98 
    0x399edc02: bl  0x39dee4f4    ; WebCore::Frame::deviceOrPageScaleFactorChanged() 
    0x399edc06: ldr r5, [r4, #56] 
    0x399edc08: b  0x399edc1e    ; WebCore::Page::setDeviceScaleFactor(float) + 94 
    0x399edc0a: add.w r0, r5, #872 
    0x399edc0e: bl  0x39dc7fa0    ; WebCore::Editor::deviceScaleFactorChanged() 
    0x399edc12: add.w r0, r5, #28 
    0x399edc16: movs r1, #0 
    0x399edc18: bl  0x399f9ed0    ; WebCore::FrameTree::traverseNext(WebCore::Frame const*) const 
    0x399edc1c: mov r5, r0 
    0x399edc1e: cmp r5, #0 
    0x399edc20: bne 0x399edc0a    ; WebCore::Page::setDeviceScaleFactor(float) + 74 
    0x399edc22: bl  0x399e6ed8    ; WebCore::pageCache() 
    0x399edc26: mov r1, r4 
    0x399edc28: pop.w {r4, r5, r7, lr} 
    0x399edc2c: b.w 0x399edc30    ; WebCore::PageCache::markPagesForFullStyleRecalc(WebCore::Page*) 

+0

該問題包含發生崩潰的庫的反彙編代碼。請提供堆棧跟蹤,它們在診斷崩潰時更有用。 – BergQuester

+0

我該怎麼做? – Esko918

+0

那麼我發現如何[NSThread callStackSymbols]是該帖子告訴我做什麼 – Esko918

回答

1

不知道這是否會解決您的問題,但嘗試當你摧毀的WebView web視圖的委託設置爲零。如果在webview被處理後你得到了一個UIWebViewDelegate回調,你的應用將會崩潰。

+0

我發現在另一個網站上,並試用它,唉,無濟於事解決了我的問題。無論如何感謝兄弟。 – Esko918

+2

如果沒有標記代碼併發布desymbolicated堆棧跟蹤,我認爲任何人都無法爲您提供幫助。另外,發佈一些代碼會有所幫助。 – JonahGabriel

+0

你能指點我一個網站或蘋果文件,告訴我如何做到這一點? – Esko918

3

你可能在你的viewWillDisappear方法

[webview stopLoading] 
webview.delegate = nil; 

或與一組額外的它停止的WebView加載到空白頁

[webview loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"about:blank"]]]; 

好運!

相關問題