2011-01-11 5 views
8

Ich habe gerade einen sehr einfachen UIWebView-basierten eingebetteten Browser in unsere App aufgenommen. Dadurch werden die Seiten geladen und navigiert, aber sobald ich das Gerät rotiere, reagiert die gesamte Benutzeroberfläche nicht mehr. Es ist jedoch immer noch läuft und ich kann die App pausieren, und drucken Sie eine Backtrace:SendDelegateMessage konnte nach 10 Sekunden Wartezeit nicht zurückkehren

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

ich manchmal, aber nicht immer, auch das bekommen in der Konsole:

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

Und das ist die WebViewController-Implementierung:

- (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"]; 
} 

Konnte jemand Licht darauf werfen?

+0

Dies scheint nur im Simulator zu passieren und das Gerät funktioniert in Ordnung. Obwohl ziemlich nervig, kann ich es umgehen. – rayh

+0

Ich verstehe Ihre Frage nicht vollständig – Coder404

+0

Hey Ray! Laden Sie das UIWebView in einer modalen Ansicht? –

Antwort

-2

Ich würde Ihre Ivars überprüfen, wie es mir vorschlagen würde, dass etwas veröffentlicht wurde und Sie versuchen, eine Operation auf einem Nullobjekt/Zeiger durchzuführen.

Verwandte Themen