Sobes.tech
Junior — Middle

Навъҳои шикасти хотира кадомҳоянд ва чӣ гуна онҳоро муайян кардан мумкин аст?

sobes.tech AI

Ҷавоб аз AI

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

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

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

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

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