Sobes.tech
Junior — Middle

Czy możesz wyjaśnić zasadę działania automatycznego zarządzania pamięcią ARC w Objective-C?

sobes.tech AI

Odpowiedź od AI

ARC (Automatyczne Liczenie Referencji) to mechanizm zarządzania pamięcią w Objective-C, który automatycznie śledzi liczbę odwołań do obiektów i zwalnia pamięć, gdy obiekt nie jest już używany.

Zasada działania ARC opiera się na liczeniu odwołań (licznik retain):

  • Gdy tworzony jest obiekt, jego licznik odwołań wynosi 1.
  • Gdy obiekt jest przypisywany do nowej zmiennej, licznik zwiększa się (retain).
  • Gdy zmienna opuszcza zakres lub jest przypisywana do nil, licznik się zmniejsza (release).
  • Gdy licznik osiąga 0, obiekt jest automatycznie usuwany z pamięci.

Przykład:

NSObject *obj = [[NSObject alloc] init]; // licznik retain = 1
self.property = obj; // licznik rośnie
obj = nil; // licznik maleje
// Gdy wszystkie odwołania do obiektu znikną, pamięć jest automatycznie zwalniana

Programista nie musi jawnie wywoływać retain/release, ARC wstawia te wywołania na etapie kompilacji, co zmniejsza prawdopodobieństwo błędów zarządzania pamięcią, takich jak wycieki czy podwójne zwolnienia.