Ich habe eine Ansicht contoller (für Login), die Deinit-Methode definiert, um Beobachter zu entfernen. Wenn der Benutzer auf die Schaltfläche Registrieren klickt, ruft der Controller performSegueWithIdentifier auf, um den Registrierungsansicht-Controller zu laden. Ich habe die Deinit-Methode definiert, um alle Beobachter zu entfernen. Diese Methode wird jedoch nicht aufgerufen. Ich habe es irgendwo gelesen, weil der Viewcontroller nicht zerstört wird und der Zeiger darauf irgendwo steht. Kann jemand den Grund dafür erklären?Erklärung für Deinit nicht genannt
Dank
EDIT: Obwohl ich damit einverstanden, dass der Link im Kommentarbereich hält die gleiche Frage zur Verfügung gestellt, es gibt keine auf diese Antwort oder klare Antwort. Die höchste Antwort mit der höchsten Antwort schlug vor, etwas innerhalb von Deinit zu definieren, anstatt es leer zu lassen. Das entspricht nicht der Suche, nach der ich suche. Aus diesem Grund behalte ich diese Frage, bis jemand darauf hinweist, dass mein Verständnis falsch ist. Und ich denke auch, dass Matt das kurz und klar erklärt.
http://stackoverflow.com/a/33580360/1979882 – Vyacheslav
Von Swift [Dokumentation] (https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/AutomaticReferenceCounting.html#//apple_ref/doc/uid/TP40014097-CH20-ID48): "... es ist möglich, Code zu schreiben, in dem eine Instanz einer Klasse _never_ zu einem Punkt kommt, an dem es keine starken Referenzen gibt. Dies kann bei zwei Klasseninstanzen passieren halte einen starken Bezug zueinander, so dass jede Instanz die andere am Leben erhält. Dies wird als starker Referenzzyklus bezeichnet. " – courteouselk
Mögliche Duplikate von [Deinit hat nie angerufen] (http://stackoverflow.com/questions/26971415/deinit-never-called) – courteouselk