Junior — Middle
Σε ποιες περιπτώσεις και πότε γίνεται αυτόματη απελευθέρωση μνήμης στο σύστημα;
sobes.tech AI
Απάντηση από AI
Στο iOS, η αυτόματη απελευθέρωση μνήμης γίνεται χάρη στον μηχανισμό ARC (Αυτόματη Καταμέτρηση Αναφορών). Το ARC παρακολουθεί αυτόματα τον αριθμό των αναφορών σε ένα αντικείμενο και απελευθερώνει τη μνήμη όταν δεν υπάρχουν πλέον ισχυρές αναφορές στο αντικείμενο.
Πότε συμβαίνει η απελευθέρωση μνήμης:
- Όταν ο μετρητής αναφορών ενός αντικειμένου μειωθεί στο μηδέν, το αντικείμενο καταστρέφεται και η μνήμη απελευθερώνεται.
- Αυτό συμβαίνει αυτόματα όταν βγαίνετε από το πεδίο ορατότητας μιας μεταβλητής ή όταν αναθέτετε nil σε μια αναφορά.
Είναι σημαντικό να αποφεύγονται οι κυκλικές αναφορές (retain cycles), διαφορετικά τα αντικείμενα δεν θα απελευθερωθούν, οδηγώντας σε διαρροές μνήμης.