objc-retain.com

Разборы и аналитика

Миграция проекта с ручного управления памятью на ARC

Переход с manual retain/release на ARC — это не просто «убрать лишние вызовы из кода». Это изменение правил владения объектами, которое влияет на dealloc, свойства, блоки, Core Foundation и даже на то, как вы читаете старый код. Когда я впервые переносил на ARC приложение для риэлторов с каталогом на 30 000 объектов, мы обнаружили, что […]

Читать далее: Миграция проекта с ручного управления памятью на ARC

Copy, Strong и Weak в Objective-C: управление владением объектами

В мобильной разработке для рынка недвижимости цена ошибки управления памятью — это не просто краш приложения. Это риэлтор, который потерял офлайн-доступ к карточке объекта перед сделкой, или датчик IoT в умном здании, чьи данные перестали поступать в аналитику из-за «повисшей» ссылки. Когда в Objective-C ломается память, ломается и бизнес-логика: внезапно очищается источник данных по жилому комплексу, […]

Читать далее: Copy, Strong и Weak в Objective-C: управление владением объектами

Autorelease pool в Objective-C: принцип работы и оптимизация памяти

Autorelease pool — один из тех механизмов Objective-C, без понимания которых сложно уверенно работать с памятью в старых проектах и в коде, который до сих пор живёт рядом с ARC. Он не заменяет управление памятью, а задаёт момент, когда временные объекты реально освобождаются.
Если вы пишете iOS-приложение, особенно с тяжёлыми циклами обработки данных, фоновой загрузкой […]

Читать далее: Autorelease pool в Objective-C: принцип работы и оптимизация памяти

Retain cycle в Objective-C: причины циклических ссылок и способы их устранения

Когда мобильное приложение для риэлтора начинает «подтормаживать» после десятка переходов между карточками объектов, а в отладчике видно, что память только растёт, — почти наверняка вы имеете дело с retain cycle. Даже при полностью включённом ARC объекты могут намертво удерживать друг друга сильными ссылками, и счётчики никогда не опустятся до нуля. dealloc не вызывается, контроллеры остаются в […]

Читать далее: Retain cycle в Objective-C: причины циклических ссылок и способы их устранения

Retain и Release в Objective-C: как работает ручное управление памятью

Когда я только начинал в инди-студии, Objective-C был основным языком, а ручное управление памятью — такой же привычкой, как утренний кофе. Сегодня ARC стал стандартом, но старый код никуда не делся: в приложениях для риэлторов, которые живут годами, в библиотеках для работы с каталогами недвижимости, в модулях синхронизации данных с серверов девелоперов. Понимание retain […]

Читать далее: Retain и Release в Objective-C: как работает ручное управление памятью