UIViewController Verhalten

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Mac & i Test Abo
  • Gute Frage. Die Objekte bleiben jedenfalls nach der Freigabe im Speicher, wenn sie kein release im dealloc bekommen. Nach dem Verschwinden des Views dürfte das Objekt bei Allocations nicht mehr auftauchen. Kannst Du nachprüfen, in dem Du eine Klasse verwendest, die Du sonst nicht brauchst. Schau da auch mal nach, ob Dein View-Controller-Objekt nach dem Ausblenden noch in der Liste der Allocations zu finden ist.
    „Meine Komplikation hatte eine Komplikation.“
  • macmoonshine schrieb:

    Michael schrieb:

    macmoonshine schrieb:

    In dealloc und viewDidUnload. Das gilt auch für Outlets, die Du nicht als Property sondern nur als Attribut deklariert hast.

    Bist Du Dir da sicher? Ich würde das eher mit einem „kommt drauf an“ beantworten. Ich mein, wenn ich zum Beispiel ein IBOutlet nur als Attribut deklariert habe, welches mit einem UITextField in der View Hierachie verbunden ist, würde ich das lieber nicht releasen.

    Dann hast Du ein Leak. Wie bereits geschrieben hält sich Apple hier nicht an seine eigenen Speicherverwaltungsregeln. Den Link dazu habe ich auch schon gepostet.

    Arrgh, stimmt. Da habe ich mich von der Überschrift „Top-Level Objects“ von dem entscheidenden Detail ablenken lassen. Ich nehm' alles zurück und behaupte das Gegenteil. :]

    macmoonshine schrieb:

    Außerdem macht es Xcode 4 beim Anlegen eines Outlet-Attributs auch so. Es erzeugt Dir ein

    Quellcode

    1. [myOutlet release];
    2. myOutlet = nil;

    Ich lasse immer nur Properties erstellen. Daher habe ich das noch nie gesehen.

    Michael
  • Michael schrieb:

    macmoonshine schrieb:

    Außerdem macht es Xcode 4 beim Anlegen eines Outlet-Attributs auch so. Es erzeugt Dir ein

    Quellcode

    1. [myOutlet release];
    2. myOutlet = nil;

    Ich lasse immer nur Properties erstellen. Daher habe ich das noch nie gesehen.

    Das war bei mir der Anhaltspunkt, mir das noch mal genauer anzusehen. Seitdem nutze ich auch nur noch Propertys. Outlet-Attribute sind einfach viel zu fehleranfällig und Instruments findet diese ja Leaks auch nicht.
    „Meine Komplikation hatte eine Komplikation.“