2011-01-11 17 views
8

Acabo de agregar un navegador integrado basado en UIWebView muy simple en nuestra aplicación. Esto carga y navega las páginas correctamente, pero tan pronto como gire el dispositivo, la IU completa deja de responder. Es, sin embargo, sigue funcionando y que puede hacer una pausa en la aplicación, e imprimir una traza inversa:SendDelegateMessage no pudo regresar después de esperar 10 segundos

(gdb) bt 
#0 0x00f35bd4 in -[CALayer addAnimation:forKey:]() 
#1 0x00f283e3 in endChange() 
#2 0x00f2a535 in CALayerSetBounds() 
#3 0x00f2a2b6 in -[CALayer setBounds:]() 
#4 0x00573307 in -[UIView(Geometry) setFrame:]() 
#5 0x006c1a3a in -[UIWebDocumentView setFrame:]() 
#6 0x008aad59 in -[UIWebBrowserView setFrame:]() 
#7 0x006c1277 in -[UIWebDocumentView _updateSize]() 
#8 0x002a76c1 in _nsnote_callback() 
#9 0x019d4f99 in __CFXNotificationPost_old() 
#10 0x0195433a in _CFXNotificationPostNotification() 
#11 0x0029d266 in -[NSNotificationCenter postNotificationName:object:userInfo:]() 
#12 0x0196d67d in __invoking___() 
#13 0x0196d551 in -[NSInvocation invoke]() 
#14 0x027db82a in SendDelegateMessage() 
#15 0x027ba138 in WKViewSetBoundsSize() 
#16 0x02825628 in WebCore::ScrollView::platformSetContentsSize() 
#17 0x0282552b in WebCore::ScrollView::setContentsSize() 
#18 0x027d8ccc in WebCore::FrameView::setContentsSize() 
#19 0x027e8b27 in WebCore::FrameView::adjustViewSize() 
#20 0x027c68a4 in WebCore::FrameView::layout() 
#21 0x027dd1e0 in WebCore::Document::updateLayout() 
#22 0x027dd0fe in WebCore::Document::updateLayoutIgnorePendingStylesheets() 
#23 0x0285bc7b in WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue() 
#24 0x0285a768 in WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue() 
#25 0x02910963 in WebCore::CSSStyleDeclaration::getPropertyCSSValue() 
#26 0x0291017b in WebCore::JSCSSStyleDeclaration::nameGetter() 
#27 0x02053d1f in JSC::JSValue::get() 

a veces, pero no siempre, también consigue esto en la consola:

void SendDelegateMessage(NSInvocation*): delegate (<CFNotificationCenter 0x5e199c0 [0x1a6a3e0]>) failed to return after waiting 10 seconds. main run loop mode: kCFRunLoopDefaultMode 

Y esto es la implementación WebViewController:

- (void)viewDidLoad { 
    [super viewDidLoad]; 

    backButton.enabled = NO; 
    forwardButton.enabled = NO; 

    pageTitle.title = [self.url absoluteString]; 
    [webView loadRequest:[NSURLRequest requestWithURL:self.url]]; 
} 

#pragma mark - 
#pragma mark UI Actions 

-(IBAction)doneButtonPressed:(id)sender { 
    [self dismissModalViewControllerAnimated:YES]; 
} 

#pragma mark - 
#pragma mark UIWebViewDelegate 

- (void)webViewDidStartLoad:(UIWebView *)aWebView { 
    [activityIndicator startAnimating]; 
    backButton.enabled = webView.canGoBack; 
    forwardButton.enabled = webView.canGoForward; 
} 
- (void)webViewDidFinishLoad:(UIWebView *)aWebView { 
    [activityIndicator stopAnimating]; 
    backButton.enabled = webView.canGoBack; 
    forwardButton.enabled = webView.canGoForward; 
    pageTitle.title = [webView stringByEvaluatingJavaScriptFromString:@"document.title"]; 
} 

¿Alguien podría arrojar algo de luz sobre esto?

+0

Esto parece ocurrir solo en el simulador y el dispositivo funciona bien. Aunque es bastante molesto, puedo evitarlo. – rayh

+0

No entiendo completamente su pregunta – Coder404

+0

Hey Ray! ¿Estás cargando UIWebView en una vista modal? –

Respuesta

-2

Revisaría sus ivars, ya que me sugeriría que algo ha sido liberado y su intento de realizar una operación en un objeto/puntero nil.

Cuestiones relacionadas