Ist das nicht didFinishLaunchingWithOptions
soll aufgerufen werden, wenn die App zum ersten Mal zu laufen beginnt? Ich setze einen Haltepunkt bei dieser Methode und wenn ich die App im Simulator starte, wird der Haltepunkt nicht getroffen, was bedeutet, dass die Methode nicht aufgerufen wird. Ich versuche, einige Daten von UserDefaults zu laden, wenn die App startet, aber es wird vollständig ignoriert. Eine Sache, die ich bemerkte, ist, dass es standardmäßig ein private func
anstelle von func
ist. Wenn ich die private
los werde, erhalte ich eine Warnung, dass "es eine fast ähnliche optionale Anforderung im UIApplicationDelegate gibt". Kann mir jemand erklären, was das bedeutet und ob die private func
etwas damit zu tun hat, dass die Methode ignoriert wird? Soll diese Methode überhaupt aufgerufen werden, wenn ich meine App im Simulator laufe? Wenn nicht, wie kann ich testen, ob Daten nach dem Start meiner App abgerufen werden? Alle anderen Methoden in der AppDelegate
werden normal aufgerufen (zum Beispiel funktioniert die applicationDidEnterBackground
Methode einwandfrei).Private Funktion didFinishLaunchingWithOptions wird nicht aufgerufen? (Swift 3)
Antwort
Ihre Methodensignatur entfernen und Xcode automatisch vervollständigt hat es
Ich hatte auch das Problem, dass meine didFinishLaunchingWithOptions
Methode in AppDelegate nicht aufgerufen werden. Meine Funktion wurde auch privat markiert und sah so aus
private func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool
Das Problem ist, dass dies die alte Syntax ist! Offensichtlich hat Xcode, als ich mein Projekt von Swift 2.x auf Swift 3 umstellte, die Methoden in AppDelegate nicht konvertiert. Die neue Syntax sieht wie folgt aus
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey : Any]? = nil) -> Bool
Haben Sie die didFinishLaunchingWithOptions
in einem Ihrer ViewControllers
umgesetzt? Die benutzerdefinierte Implementierung dieser Methode wird nicht aufgerufen. Diese Methode ist in der ApplicationDelegate
definiert und wird immer aufgerufen, sobald die App gestartet wird. Wenn Sie die Methode in keiner ViewController
erneut definiert haben und die in AppDelegate
nicht aufgerufen wird, versuchen Sie, den Simulator zurückzusetzen. Aus dem Simulatormenü Simulator -> Reset content and settings
.
Wenn Compiler fordert die didFinishLaunchingWithOptions
Methode Privat dann die Parameter des Verfahrens zu machen, könnten den Fehler verursachen. Der Parameter der Anwendung (_: didFinishLaunchingWithOptions :) Delegatmethode nun Swift als überbrückt [UIApplicationLaunchOptionsKey: Alles] ?, anstatt ein [NSObject: ANYOBJECT] ?. Ändern Sie die Methodensignatur wie gezeigt.
Zurücksetzen Versuchte Inhalte und Einstellungen, hat nicht funktioniert. Und nein, ich habe die Methode nirgendwo anders implementiert, ich weiß, das ist nutzlos, da es eine Delegiertenmethode ist.Ich gehe immer noch davon aus, dass es etwas mit der Warnung zu tun hat, die ich erhalte, wenn ich vor dem Methodenaufruf den 'privaten' loswerde. Oder zumindest könnte es die private Anweisung sein, die dazu führt, dass die Methode zur Laufzeit ignoriert wird? –
Versuchen Sie die bearbeitete – Mathews
Diese Methode ist im ApplicationDelegate definiert und wird immer aufgerufen, sobald die App gestartet wird. Wenn Sie die Methode in keinem ViewController neu definiert haben und die Methode in AppDelegate nicht aufgerufen wird, versuchen Sie, den Simulator zurückzusetzen.
öffnen Simulator -> Menü Simulator -> Zurücksetzen Inhalte und Einstellungen.
-(BOOL)application(UIApplication*)applicationdidFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
//..
}
für Swift ~ 3.0 didFinishLaunchingWithOptions ersetzen mit Unterschrift follwing
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey : Any]? = nil) -> Bool {
}
- 1. Swift 3 viewWillTransitionToSize nicht aufgerufen wird
- 2. Delegate-Funktion wird nicht iOS Swift aufgerufen
- 3. Private Klassenvariablen werden nicht geändert, wenn Funktion aufgerufen wird
- 4. didUpdateLocations wird oft in swift aufgerufen 3
- 5. Swift Delegat wird nicht aufgerufen
- 6. Swift 3 vorbereiten für segue wird nicht aufgerufen
- 7. Swift 3 (macOS): keyDown (mit Ereignis: NSEvent) wird nicht aufgerufen
- 8. didSelectRowAtIndexPath wird nicht aufgerufen (Swift)
- 9. didSelectRowAt Methode nicht aufgerufen (swift 3)
- 10. Anwendung DidFinishLaunchingWithOptions wird aufgerufen, bevor Storyboards geladen werden?
- 11. Funktion aufgerufen in SetTimeout wird nicht aufgerufen
- 12. Button nicht versteckt, wenn Funktion von einer anderen Klasse programmgesteuert aufgerufen wird [Swift 3]
- 13. Warum wird die textFieldShouldReturn-Funktion nicht aufgerufen?
- 14. router.get Funktion wird nicht aufgerufen
- 15. URLSessionDelegate Funktion nicht aufgerufen wird
- 16. Swift NSMutableURLRequest URLSession-Callback wird nicht aufgerufen
- 17. Die Link-Funktion wird nicht aufgerufen
- 18. Swift: Funktion wird aufgerufen, wenn Back gedrückt wird
- 19. swift 3 - Declated Funktion erhält nicht
- 20. Abschlusshandler wird nicht aufgerufen, wie angenommen Swift
- 21. iOS Swift viewForHeaderInSection Wird nicht aufgerufen
- 22. Swift indexOf, == Operatorüberschreibung wird nicht aufgerufen
- 23. Swift UITableView didSelectRowAtIndexPath wird nicht aufgerufen
- 24. Warum wird meine Funktion nicht aufgerufen?
- 25. Swift viewWillTransition nicht aufgerufen
- 26. Swift 3 - UITextView wird nicht aktualisiert
- 27. Eigenschaft fset Funktion wird nicht aufgerufen
- 28. Welche Funktion wird aufgerufen?
- 29. AVAssetExportSession.requestExportSession Callback nie aufgerufen (swift 3, iOS10)
- 30. GMSMapViewDelegate wird nicht aufgerufen
Sorry, ich habe dieses Problem vor einiger Zeit behoben. Haben Sie vergessen, diese Frage als beantwortet zu markieren. Um dieses Problem zu beheben, musste ich "AnyObject" durch "Any" als Wert des Dictionary-Parameters dieser Methode ersetzen. Es ist wirklich komisch, dass man 'AnyObject' in Swift 3 immer noch aufrufen kann, obwohl diese Klasse in' Any' umbenannt wurde und vollständig veraltet ist. Aber es gibt auch ein paar andere Beispiele für diese Art von Klassen, 'AnyObject' ist nicht die einzige. –
Genau das habe ich versucht zu sagen. Die Methodensignatur wurde von AnyObject in Any geändert, sodass Ihre Methode mit AnyObject nicht als 'didFinishLaunching'-Methode erkannt wurde. – Yannick
Es ist ziemlich verrückt, dass die Konvertierung diese Funktion nicht konvertiert und dazu führt, dass sie nicht aufgerufen wird .... – jarryd