2013-07-26 31 views
5

Im zorlanıyor yaptığım olursa olsun ben bu kilitlenmeUIWebView çöker ve ben

İşte iz almaya devam çalışmak benim sorunu olsun, çünkü bu sorunu anlamaya çalışıyorum neden hiçbir fikrim yok

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

Yaptığım şey bir slayt gösterisi olarak UIPageViewController kullanıyor. Bazen sayfa döndüğünde, web görünümünde bir HTML dosyası yüklemem gerekiyor, bu html dosyaları, html sayfasındaki nesneleri canlandırmak için kullanılan html kodunu içerir. Yani her zaman ben yeni bir görünüm denetleyicisi sayfaViewController görüntülemek için giriyorum Ben web görüntüyü yok gerekir çünkü aniamtion bir animasyondan diğerine geçerken canlandırıyor. Bazen çalışır ama bazen bu çökmeye neden olur. Artık web sayfalarının bu mesaj kadar detaylı bir şekilde belgelenmediği için, bunun nasıl okunacağına dair hiçbir fikrim yok. Yani, burada neler olduğunu tam olarak bilen var mı? Bu sorunu çözmek, ancak bir web görüntülemesini imha zaman sıfıra Web görünümündeki delegesi ayarı çalışacağız eğer



    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

Soru, kilitlenmenin oluştuğu kütüphanenin sökülmüş kodunu içermektedir. Lütfen yığın izini sağlayın, kilitlenmeleri teşhis etmede çok daha faydalıdırlar. – BergQuester

+0

Bunu nasıl yaparım? – Esko918

+0

Peki [NSThread callStackSymbols] yazının bana – Esko918

cevap

1

emin değil kırıldığında

Kod tükürür. Web görünümü kullanıma alındıktan sonra bir UIWebViewDelegate geri çağrısı alırsanız, uygulamanız kilitlenir.

+0

Başka bir sitede bunu denedim ve denedim, ne yazık ki sorunumu çözdüm. Teşekkürler ahbap dostum. – Esko918

+2

Kodunuzu sembolize etmeden ve desymbolicated yığın izlerini göndermeden, o zaman kimsenin size yardım edemeyeceğini düşünmüyorum. Ayrıca, kodunuzun bir kısmını gönderme yardımcı olacaktır. – JonahGabriel

+0

Beni nasıl yapılacağını söyleyen bir web sitesine veya Apple'a yönlendirebilir misiniz? – Esko918

3

Boş sayfaya viewWillDisappear yöntemiyle

[webview stopLoading] 
webview.delegate = nil; 

veya ek bir kümesi onunla

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

iyi şanslar Webview yükleme durabilir!