Sobes.tech
Junior — Middle

Какви са видовете течове на памет и как да ги открием?

sobes.tech AI

Отговор от AI

В iOS съществуват няколко типа течове на памет:

  • Циклични препратки (цикли на задържане): когато два обекта си държат силни препратки един към друг, което пречи на освобождаването им.
  • Течове поради неправилна употреба на делегати: ако делегатът е обявен като силна препратка, това може да доведе до цикъл.
  • Течове поради неосвободени ресурси: например таймери, наблюдатели на известия, които не са били премахнати.

За откриване на течове се използват инструментите на Xcode:

  • Instruments (Leaks и Allocations) — позволява да се проследят обекти, които не се освобождават.
  • Memory Graph Debugger — визуализира връзките между обектите и помага да се намерят цикли.

Пример: ако в класа ViewController има силна препратка към таймер, който не се спира и не се нулира, това може да доведе до теч.