2016-08-03 20 views
1

Mein viewController hat eine UIView-Eigenschaft, die ein WKWebView enthält. Und ich habe den WKWebView-scrollView-Delegaten auf meinen viewController gesetzt, der eine öffentliche Funktion meiner UIView-SubClass ist und in meinem viewController aufgerufen wird.iOS WKWebView.scrollView-Delegat Ursache BAD_ACCESS

Das Problem ist, wenn ich [viewController popViewControllerAnimated] aufrufen, wird es auf [UIScrollView setDelegate:] abstürzen. Ich habe das Problem durch Hinzufügen viewController.UIView.WKWebView.scrollView.delegate = nil; in ViewController dealloc behoben.

Aber warum? WKWebView dealloc ist nach dealloc von ViewController, ich nehme an, dass viewController auf Null gesetzt ist und dealloc in WKWebView seinen Delegaten auf null aktualisiert und dann BAD_ACCESS verursacht? Aber wieso wird dealloc implizit aufrufen setDelegate ???

+0

Könnten Sie ein bisschen mehr Informationen zur Verfügung stellen? Wie hast du deinen 'scrollView' hinzugefügt? mit starker Referenz oder nicht? – iSashok

Antwort

0

In ähnlicher Situation für WKWebView hatte ich ähnliches Problem bei der Zuweisung von Delegate an Selbst. Implementieren deinit gelöst für mich: