Autorelease Problem

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

  • Autorelease Problem

    Hi Leute!

    Ich hab eine kleine Frage zu autorelease.
    Wiso kann man ein Objekt, dem ein autorelease geschickt wurde, nicht mit release wieder löschen? Oder hab ich da etwas falsch gemacht?
  • Michael schrieb:

    Und jetzt mal ohne irgendwelche Vergleiche.
    […]


    Zumal die Vergleiche nicht passen. Mit einem Objekt im ARP arbeitet man noch, gibt es zurück, erzeugt daraus neue bjekte etc. pp. Das würde ich weder mit einem Paket machen, welches ich bereits zur Abholung freigegeben habe noch mit meinem Müll.

    @OP
    Also eher so: Du sagst deiner Sekretärin, dass sie abends, wenn du weg bist, eine Akte vernichten soll. Bevor du gehst, machst du es aber noch selbst. Da schaut deine Sekretärin dumm aus der Wäsche, wenn sie die Akte nicht mehr findet.
    Es hat noch nie etwas gefunzt. To tear down the Wall would be a Werror!
    25.06.2016: [Swift] gehört zu meinen *Favorite Tags* auf SO. In welcher Bedeutung von "favorite"?
  • Amin Negm-Awad schrieb:

    Michael schrieb:

    Und jetzt mal ohne irgendwelche Vergleiche.
    […]


    Zumal die Vergleiche nicht passen. Mit einem Objekt im ARP arbeitet man noch, gibt es zurück, erzeugt daraus neue bjekte etc. pp. Das würde ich weder mit einem Paket machen, welches ich bereits zur Abholung freigegeben habe noch mit meinem Müll.

    @OP
    Also eher so: Du sagst deiner Sekretärin, dass sie abends, wenn du weg bist, eine Akte vernichten soll. Bevor du gehst, machst du es aber noch selbst. Da schaut deine Sekretärin dumm aus der Wäsche, wenn sie die Akte nicht mehr findet.

    wann wird genau das objekt, dem ich autorelease geschickt habe, gelöscht? alle sagen verzögert oder ein wenig später. wann genau?
  • Das hatte der gute Michael bereits geschrieben:
    "Weil jedes autorelease nach Durchlauf der Runloop mit zu einem release wird"

    Ich beschreibe das gerne so: Solange du mit dem Finger deinem Code folgen kannst, existiert es noch, durch alle "Unterprogramme" durch alle Returnwerte.
    Es hat noch nie etwas gefunzt. To tear down the Wall would be a Werror!
    25.06.2016: [Swift] gehört zu meinen *Favorite Tags* auf SO. In welcher Bedeutung von "favorite"?
  • Amin Negm-Awad schrieb:

    Michael schrieb:

    Und jetzt mal ohne irgendwelche Vergleiche.
    […]

    Zumal die Vergleiche nicht passen. Mit einem Objekt im ARP arbeitet man noch, gibt es zurück, erzeugt daraus neue bjekte etc. pp. Das würde ich weder mit einem Paket machen, welches ich bereits zur Abholung freigegeben habe noch mit meinem Müll.

    Du kannst mit deinem Paket aber so lange irgendetwas machen, bis es abgeholt wird. So wie du mit deinem Objekt irgendetwas tun kannst, bis der ARP geleert wird.
    Du kannst dein Paket selbstverständlich auch selbst zur Post tragen, so wie du ein Objekt im ARP natürlich selbst via -release freigeben kannst.
    Du bekommst dann hinterher allerdings Probleme.
    Entweder schaut dich der Mitarbeiter des Paketdienstes blöd an oder du bekommst zur Laufzeit einen Zugriffsfehler.

    Ich finde den Vergleich passend. ;)

    junky94 schrieb:

    alle sagen verzögert oder ein wenig später. wann genau?

    Beim Wiedereintritt in die Runloop.
    «Applejack» "Don't you use your fancy mathematics to muddle the issue!"

    Iä-86! Iä-64! Awavauatsh fthagn!

    kmr schrieb:

    Ach, Du bist auch so ein leichtgläubiger Zeitgenosse, der alles glaubt, was irgendwelche Typen vor sich hin brabbeln. :-P
  • junky94 schrieb:

    wann wird genau das objekt, dem ich autorelease geschickt habe, gelöscht? alle sagen verzögert oder ein wenig später. wann genau?


    Wenn Du den NSAutoreleasePool des Application Kit verwendest, also keinen zusätzlichen selbst im Code anlegst: Frühestens nach Ende der Methode, in der Du autorelease machst. Spätestens jedoch, wenn aller Code durchlaufen wurde, der zur Abarbeitung des aktuellen User-Events (Klick, Touch, …) nötig ist.
    macmark.de OS X: Hilfe, Tips & Technik
    MacMark auf Twitter
    Erklärung meines Avatars