2016-05-29 20 views
0

Gibt es eine Möglichkeit, wie viel Speicher eine Variable verwendet?Speicher des Objekts abrufen

Ich meine, ich habe ein Wörterbuch mit Bildern darin und wenn es zu groß wächst, möchte ich einige der Schlüssel/Werte-Paare innerhalb davon löschen.

Antwort

0

Dies ist genau das, was NSCache automatisch erstellt. Zu deiner tieferen Frage, nicht wie du denkst. "Wie viel Speicher verwendet X?" Ist eine sehr unscharfe und komplizierte Frage, besonders wenn Sie an UIImage denken, das seine Speicherauslastung jederzeit ändern kann und viel Speicher enthält, der nicht direkt auf Ihr Programm angerechnet wird . UIImage macht bereits eine Menge Speicheroptimierung; studiere seine Dokumente, bevor du neu erfindest, was es bereits tut.

+0

Will tun, ich fand es einfach, mein eigenes globales Wörterbuch zu implementieren. Vielen Dank! – Ancinek

+0

Beachten Sie, dass "NSCache" einige Funktionen bietet, die Sie in Ihrem eigenen Code nicht neu implementieren können. Insbesondere kann verwerfbarer Inhalt gelöscht werden, während das Programm angehalten wird, wenn nur wenig Arbeitsspeicher zur Verfügung steht. Wenn Sie versuchen, 'NSCache' erneut zu implementieren, wird in diesem Fall Ihre App gelöscht, statt den löschbaren Inhalt zu bereinigen. (Das heißt, wenn Sie Ihr 'UIImage' mit' init (named:) 'erstellt haben, hat es bereits verwerfbaren Inhalt, der gelöscht werden kann, während Sie suspendiert sind.) –

+0

Gibt es eine Möglichkeit, den Cache für bestimmte Werte zu beobachten und Wenn der Wert zum Cache hinzugefügt wird, feuern Sie dann eine Funktion? Es war einfacher, als ich mein eigenes Wörterbuch erstellte, da ich gerade eine Benachrichtigung in einem didSet-Property-Observer ausgelöst hatte. – Ancinek

Verwandte Themen