Vielleicht bietet der Titel keine gute Beschreibung, also lesen Sie bitte Folgendes.Wie schwache Benachrichtigung zu melden
Ich habe eine Benachrichtigung, dass ein Ereignis hören gesetzt:
NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(self.checkIfNotificationsWereTurnedOnAfterAlertShowing), name: UIApplicationWillEnterForegroundNotification, object: UIApplication.sharedApplication())
Dann möchte ich Beobachter auf diese Meldung entfernen. Ich fand, dass ich so verwenden deinit benötigen:
deinit {
NSNotificationCenter.defaultCenter().removeObserver(UIApplicationWillEnterForegroundNotification)
print("deinit")
}
Aber das Problem ist, dass, wenn ich die View-Controller zu schließen, wird das Programm nie deinit Funktion ausführt. In diesem answer fand ich, dass es wegen starker Referenz sein könnte.
Ich habe viele Links überprüft, konnte jedoch nicht feststellen, wie eine schwache Referenz für eine Benachrichtigung deklariert werden kann. Also, wie kann ich eine schwache Benachrichtigung melden?
Hope meine Frage ist klar.
Wir freuen uns auf Ihre Hilfe.
im Zusammenhang: http://StackOverflow.com/Questions/425354/what-type-of-Reference-does-nsnotificationcenter-keep-for-observers-Object – Wain
Es ist schwache Referenz. Du musst etwas anderes dran haben. – Rob
Siehe auch: http://stackoverflow.com/questions/26971415/deinit-never- called – Santosh