Вступить в клуб →
лёгкаявопросCombine: издатели, подписки и операторы

Подписка на изменения корзины через sink получает только первое значение

final class CartBadgeController {
    init(cart: CartService) {
        _ = cart.$itemsCount
            .sink { count in print("В корзине:", count) }
    }
}

При создании контроллера в консоли появляется «В корзине: 0». Потом товары добавляются, itemsCount меняется, но больше ничего не печатается. Почему?

  • AnyCancellable не сохранён, подписка сразу отменена
  • sink получает значения только в главном потоке
  • @Published не отдаёт значения через $
  • print не работает внутри замыканий Combine

🔒 Проверка ответа — для участников клуба

  • Проверка ответа
  • Подсказка, если застряли
  • Разбор с объяснением, почему так
  • Прогресс по всем задачам и виртуальные собеседования
Зарегистрироваться →

Регистрация занимает минуту

Другие задачи раздела