Aus NSArrayController entferntes Objekt trotzdem noch im Speicher

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

  • Aus NSArrayController entferntes Objekt trotzdem noch im Speicher

    Hallo Leute,


    ich habe einen ganz normalen NSArrayController der Objekte aufnimmt, die Subklassen von NSObject sind. Wenn ich ein Objekt mit remove: aus dem Array-Contrller entferne, bleibt dieses aber noch im Speicher enthalten. (das dealloc des Objektes wird nicht aufgerufen). Ich habe ARC aktiviert. Irgendetwas scheint also noch auf die Objekte zu zeigen, doch ich kann nicht rausfinden was. Mit ARC kann man sich ja nicht mal mehr den Retain Count ausgeben lassen. Jedenfalls nicht mittels Code, vielleicht irgendwie anders.

    Kennt jemand eine Möglichkeit wie ich herausfinden kann was mein Objekt davon abhält in die ewigen Jagdgründe zu gehen...?


    Gruß und Danke
    Daniel
    “I want to see an elephant hunt down a man for the sole purpose of collecting his teeth, while a chorus of typewriters sings songs that praises the bananas for their wisdom, leadership, and their high levels of potassium.” ― Jarod Kintz, I Want
  • Ich frage mich wiso du davon ausgehst, dass das Object unbedingt direkt wieder freigegeben wird, nur weil du es aus dem ArrayController entfernst. Was sagt denn Leaks ? Meldet der da Probleme ? Wenn nein, dann wird es einfach ganz normal sein und das System gibt das irgendwann später frei wenn es meint das es Sinn macht.

    Gruß

    Claus
    2 Stunden Try & Error erspart 10 Minuten Handbuchlesen.

    Pre-Kaffee-Posts sind mit Vorsicht zu geniessen :)
  • Thallius schrieb:

    Ich frage mich wiso du davon ausgehst, dass das Object unbedingt direkt wieder freigegeben wird, nur weil du es aus dem ArrayController entfernst. (...)


    Tatsächlich hast du recht. Meistens wird es nämlich erst dann freigegeben, wenn es entfernt wurde und ein neues Objekt wieder hinzugefügt wird. Das habe ich erst nicht bemerkt, da bei meiner App i.d.R nur ein mal Objekte hinzugefügt und ein mal wieder entfernt werden.

    Warum das so ist kann man vermutlich nur spekulieren.

    Bei meinem Testprojekt wird es sofort freigegeben: osxentwicklerforum.de/index.ph…b9a2e4f01154b20cda05e5547 Deshalb hatte ich mich auch gewundert, warum dies nicht bei mir passiert obwohl ich eigentlich das gleiche Prinzip benutze.
    “I want to see an elephant hunt down a man for the sole purpose of collecting his teeth, while a chorus of typewriters sings songs that praises the bananas for their wisdom, leadership, and their high levels of potassium.” ― Jarod Kintz, I Want