/ / Ist dies alles für die Müllsammlung in Objective-C? - iPhone, Ziel-C, Speicher, Müllsammlung

Ist das alles für die Garbage Collection in Objective-C? - iPhone, Ziel-C, Speicher, Müll-Sammlung

Hallo, ich habe gerade Obj-C gefunden und mag die manuelle Speicherverwaltung nicht.

Ich entscheide mich für die Garbage Collection und füge hinzu

objc_startCollectorThread();//garbage collection

in meinem Main () und ändern Sie den Speicherbereinigungswert in [-fobjc-gc]

Also ist das alles was ich brauche? Also kann ich "frei" programmieren wie in Java / Python..etc?

Antworten:

4 für die Antwort № 1

Ja, Sie haben recht, aber falls ein iPhone-Programmierer vorbeikommt und "oh süß!" Denkt, beachten Sie bitte, dass das iPhone die Garbage Collection noch nicht unterstützt (jemals?). Dies ist also die einzige MacOS-Lösung.


2 für die Antwort № 2

Beachten Sie, dass -fobjc-gc bedeutet, dass Sie immer noch keep / release verwenden (wenn Sie ein Framework / eine Bibliothek schreiben); du willst wahrscheinlich -fobjc-gc-only wenn Sie den Referenzzählcode vollständig entfernen möchten.


2 für die Antwort № 3

Wie bereits gesagt, gibt es keine Müllsammlung im iPhone.

Wenn Sie eine Desktop Cocoa-App schreiben, benötigen Sie lediglich die -fobjc-gc-only flag ohne explizite objc_startCollectorThread() Anlauffunktion.


0 für die Antwort № 4

Grundsätzlich ja. Dies ist in abgedeckt Apple's Dokumentation. Möglicherweise müssen Sie auch gelegentlich anrufen

objc_clear_stack

Dies ist jedoch optional, um sicherzustellen, dass die Lebensdauer von Stapeln beibehaltener Objekte so kurz wie nötig ist.