Sobes.tech
Junior — Middle

Πότε πραγματοποιείται η απελευθέρωση της μνήμης που καταλαμβάνει ένα αντικείμενο;

sobes.tech AI

Απάντηση από AI

Στο iOS, η απελευθέρωση μνήμης ενός αντικειμένου συμβαίνει τη στιγμή που ο μετρητής αναφορών (retain count) αυτού του αντικειμένου φτάνει το μηδέν. Αυτό σημαίνει ότι κανείς άλλος δεν αναφέρεται πλέον στο αντικείμενο και το σύστημα μπορεί να ελευθερώσει τη μνήμη που καταλαμβάνει.

Στις σύγχρονες εφαρμογές χρησιμοποιείται το ARC (Automatic Reference Counting), το οποίο αυξάνει και μειώνει αυτόματα τον μετρητή αναφορών κατά την ανάθεση και την αφαίρεση αναφορών στο αντικείμενο.

Παράδειγμα:

class MyClass {}

var obj: MyClass? = MyClass() // μετρητής αναφορών = 1
obj = nil // μετρητής αναφορών = 0, το αντικείμενο απελευθερώνεται

Έτσι, η απελευθέρωση μνήμης συμβαίνει αμέσως μετά το τελευταίο ιδιοκτήτη του αντικειμένου που σταματά να αναφέρεται σε αυτό.