Junior — Middle
Can you explain how memory is freed up by an object within the system?
sobes.tech AI
Answer from AI
In iOS, object memory management is primarily handled using the ARC (Automatic Reference Counting) mechanism.
Each object in memory has a reference count — the number of active references to it. When a reference to an object is created, the count increases; when a reference is removed, it decreases. When the count reaches zero, the object is automatically deallocated from memory.
Example:
class Person {
var name: String
init(name: String) {
self.name = name
}
}
var person1: Person? = Person(name: "Alex") // reference count = 1
var person2 = person1 // reference count = 2
person1 = nil // reference count = 1
person2 = nil // reference count = 0, object is deallocated
If there are cyclic references (for example, two objects referencing each other), ARC cannot automatically free the memory. To solve this, weak or unowned references are used, which do not increase the reference count.