2013-07-26 59 views
5

Im gặp khó khăn cố gắng tìm vấn đề này ra vì không có vấn đề gì tôi làm để có được vấn đề của tôi để làm việc tôi tiếp tục nhận được tai nạn nàyUIWebView tai nạn và tôi không có ý tưởng tại sao

Heres dấu vết

$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 
    ) 

Điều tôi đang làm là sử dụng UIPageViewController làm trình chiếu. Đôi khi khi trang quay tôi cần tải lên tệp HTML có chế độ xem web, các tệp html này chứa mã html được sử dụng để tạo hoạt ảnh cho các đối tượng trong trang html. Vì vậy, mỗi khi tôi crete một bộ điều khiển xem mới để hiển thị trong pageViewController tôi cần phải tiêu diệt các webview vì aniamtion sẽ không animate khi đi từ một hình ảnh động khác. Đôi khi nó hoạt động nhưng đôi khi nó gây ra sự cố này. Bây giờ tôi không có ý tưởng làm thế nào để đọc về điều này kể từ khi webviews không tài liệu chi tiết như thông điệp này được. Vì vậy, không ai biết chính xác những gì đang xảy ra ở đây ??

Mã nhổ ra khi nó phá vỡ



    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

Câu hỏi có chứa mã chưa được giải mã của thư viện nơi xảy ra sự cố. Thay vào đó, hãy cung cấp dấu vết ngăn xếp, chúng hữu ích hơn nhiều trong chẩn đoán sự cố. – BergQuester

+0

Tôi làm như thế nào? – Esko918

+0

Tôi cũng đã tìm ra cách [NSThread callStackSymbols] là bài viết đã yêu cầu tôi làm – Esko918

Trả lời

1

Không chắc chắn nếu điều này sẽ khắc phục vấn đề của bạn, nhưng hãy thử cài đặt các đại biểu của webview để nil khi bạn tiêu diệt các webview. Nếu bạn nhận được một cuộc gọi lại UIWebViewDelegate sau khi webview đã được dealloced, ứng dụng của bạn sẽ sụp đổ.

+0

Tôi thấy rằng trên một trang web khác và thử nó, than ôi không có kết quả nào giải quyết được vấn đề của tôi. Thanks anyway dude. – Esko918

+2

Nếu không có biểu tượng cho mã của bạn và đăng các dấu vết ngăn xếp không có biến dạng, tôi không nghĩ rằng bất kỳ ai cũng có thể giúp bạn nhiều. Ngoài ra, đăng một số mã của bạn sẽ giúp ích. – JonahGabriel

+0

Bạn có thể chỉ cho tôi trang web hoặc tài liệu về táo cho tôi biết cách thực hiện điều đó không? – Esko918

3

Bạn có thể ngừng bốc webview trên phương pháp viewWillDisappear bạn

[webview stopLoading] 
webview.delegate = nil; 

hoặc với một bộ thêm nó vào trang trống

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

chúc may mắn!