2013-10-02 12 views
5

Aktualnie tworzę aplikację, która korzysta z przeglądarki krpano, która jest przeglądarką Panorama zbudowaną z JavaScript. Ładuję tę przeglądarkę Panorama w interfejsie UIWebView z lokalnymi obrazami zapisanymi na iPadzie.iOS 7: UIWebView ulega awarii z powodu wyjątku zakresu

Ale po użyciu widza Panorama na chwilę, mam ten błąd i awarii aplikacji:

Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[WebCoreSharedBufferData getBytes:range:]: range {0, 4000} exceeds data length 0' 
*** First throw call stack: 
(0x2e213f53 0x38a226af 0x2e213e95 0x2eb4dc31 0x2e16ca65 0x2ef4ce47 0x2ef4cd21 0x2ef68f03 0x2ef682db 0x2ef68029 0x2ef67e61 0x2ef67dcf 0x2ef6bd39 0x2ef6b813 0x2ef5471f 0x2e29b2ed 0x30635c6d 0x30635117 0x30621069 0x30620bad 0x3061d949 0x3061c051 0x38f0c297 0x38f0c09b 0x38f0cd15 0x38f0cf8d 0x39047dbf 0x39047c84) 
libc++abi.dylib: terminating with uncaught exception of type NSException 

Czy ktoś ma pomysł dlaczego tak się dzieje? Kiedy ładuję stronę online w UIWebView, nie ma problemu.

Dzięki za pomoc!

+1

Zabawne jest to, że dzieje się tak tylko na urządzeniu, a nie na symulatorze. To samo z tym błędem: : ImageIO: JPEG Nie plik JPEG: zaczyna się od 0x00 0x00 – chritaso

+0

Czy wymyśliłeś ten problem @ chritaso? – hoya21

+0

@ hoya21 Proszę spojrzeć na mój komentarz dotyczący odpowiedzi Ortwina Gentza. – chritaso

Odpowiedz

1

Jest to prawdopodobnie problem związany z pamięcią. Kiedy aplikacja internetowa przydziela zbyt dużo pamięci za pomocą Javascript, dziwne rzeczy się wydarzą.

Najlepiej jest obserwować powiadomienia o zapamiętywaniu pamięci i próbować wpływać na aplikację internetową z zewnątrz. Oczywiście zależy to od specyfiki aplikacji internetowej, ale możesz spróbować wyłączyć na jakiś czas funkcję userInteractionEnabled, aby przeglądanie stron internetowych nadrobiło zaległe akcje wejściowe użytkownika lub, jeśli ostrzeżenie o pamięci nie zniknie, spróbuj ponownie załadować widok sieciowy.

Niestety nie ma tutaj łatwych rozwiązań.

+1

Cześć Ortwin, myślę, że masz rację. Próbowałem wielu rzeczy, aby zapobiec awariom wyświetlania zarówno strony internetowej, jak i aplikacji, ale jedyną rzeczą, która pomogła, było użycie obrazów o niższej rozdzielczości w widoku internetowym. To nie jest prawdziwe rozwiązanie, ponieważ wynik nie będzie tak dobry, jak bez obejścia tego problemu. Ale wygląda na to, że powiedziałeś, że nie masz dużej kontroli nad tym zachowaniem. – chritaso

Powiązane problemy