DevPrep

Все темы › Combine

Как управлять памятью подписок (AnyCancellable)?

Middle PRO

Суть

sink и assign(to:on:) возвращают AnyCancellable — токен подписки. Пока он жив, подписка активна; при его deinit (или явном cancel()) подписка отменяется и ресурсы освобождаются. Отсюда два правила: сохранить токен (иначе подписка умрёт сразу) и привязать его время жизни к владельцу — обычно через store(in: &bag) в Set<AnyCancellable> у объекта, который заинтересован в данных.

Продолжение ответа с кодом и уточняющими вопросами интервьюера — в приложении DevPrep.

Полный ответ — в DevPrep

Потренируйтесь перед собеседованием

В DevPrep эти ответы превращаются в задачи на минуту: что напечатает код, найди баг, пробное собеседование. По задаче в день.

Скачать DevPrep в App Store