Verwenden der neuesten Version von XCode und Swift.IBOutlet scheint nicht aktiv zu sein, wenn die dedRegisterForRemoteNotificationsWithDeviceToken der App-Delegierten aufgerufen wird
Ich habe eine einfache Anwendung mit einem Webview erstellt. Das IBOutlet innerhalb der Steuerung ist korrekt verdrahtet. Beim Laden einer Anfrage in viewDidLoad() scheint alles in Ordnung zu sein.
Allerdings wollte ich den Geräte-Token an die Webansicht übergeben. Ich verwende die folgende Funktion innerhalb AppDelegate:
var vc = ViewController()
...
func application(application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: NSData) {
var token = NSString(format: "%@", deviceToken)
token = token.stringByReplacingOccurrencesOfString("<", withString: "")
token = token.stringByReplacingOccurrencesOfString(">", withString: "")
token = token.stringByReplacingOccurrencesOfString(" ", withString: "")
vc.deviceToken = token as String;
vc.loadSomeUrl()
}
Die loadSomeUrl() Funktion wie folgt aussieht:
func loadSomeUrl() {
let url = NSURL (string: "http://google.de");
let requestObj = NSURLRequest(URL: url!);
webview.loadRequest(requestObj);
}
Wenn die Anwendung ausgeführt wird, erhalte ich die folgende Meldung:
fatal error: unexpectedly found nil while unwrapping an Optional value
Ich habe buchstäblich keine Ahnung, was das Problem ist. Ich fand heraus, dass die Webansicht plötzlich null ist, obwohl viewDidLoad() zuvor aufgerufen wurde. Ich habe einen Ausdruck (webview) zu viewDidLoad() hinzugefügt, das richtig funktioniert. Beim Hinzufügen von print (webview) zu loadSomeUrl(); Der obige schwerwiegende Fehler wird ebenfalls ausgelöst.
Für weitere Untersuchungen habe ich das folgende Snippet zum Ausgang hinzugefügt.
@IBOutlet var webview: UIWebView!{
didSet {
print("webview set to %@", webview);
}
}
Das Outut ist in Ordnung. Der obige Fehler tritt nach dieser Ausgabe auf.
webview set to %@ <UIWebView: 0x145d18910; frame = (0 0; 600 556); autoresize = RM+BM; layer = <CALayer: 0x145d20f20>> fatal error: unexpectedly found nil while unwrapping an Optional value
Hat jemand eine Ahnung hat, was das Problem ist? Vielleicht adressiere ich dieses ganze Problem auf die falsche Art.
requestObj nicht gleich Null ist, nicht wahr? –