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 № 1Ja, 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.