2012-04-14 6 views
1

Ich bin ziemlich sicher, dass sie es tun ... aber wollte nur ... für am folgenden Code Beispiel Blicke bestätigen ..Macht der Convenience-Konstruktor die Größe der App größer ...?

- (void)reset { 
NSNumber *zero = [NSNumber numberWithInteger:0]; 
[self setCount:zero]; 
} 

jetzt diese gibt ein Autoreleased Objekt, das mit dem Autofreigabepool hinzugefügt wird von die App und damit ihre Größe zu erhöhen ...

und dies wird nicht freigegeben werden, wenn die App beendet ist ..? Jede Hilfe wird geschätzt

Antwort

4

Der Speicher wird den nächsten Durchlauf durch die Main Event-Schleife der Anwendung freigegeben.

Die genaue Zeit hängt davon ab, wann Ihre Anwendung den Code ausgeführt hat und zur Ereignisschleife zurückkehrt. Während der Ereignisschleife wird unter den geplanten Tasks der Autorelease-Pool der Anwendung geleert (entleert).

Wenn Sie Bedenken haben, dass Autorelease-Pools an Größe zunehmen, können Sie Ihre eigenen Autorelease-Pools strategisch einsetzen.

+0

und wann passiert das ..? –

+0

Ich bin auf der Suche nach der genauen Zeit, ich meine, was den Pass auslöst ..? –

+0

@AnkitSrivastava Siehe meine Änderungen. – trudyscousin