Чем Combine subscription retain cycle отличается от weak self in sink и когда что выбрать?

iOS / SwiftMiddleMemory ManagementСравнениеios|swift|memory management|combine|combine subscription retain cycle

Что хотят услышать интервьюеры:

Сравнение: Combine subscription retain cycle нужно оценивать в контексте задачи, а не как универсально лучший вариант. В сравнении с weak self in sink смотрите на ownership, lifecycle, читаемость, поддержку разных iOS версий, тестируемость и риск ошибок.

Ответ:

Нюанс: sink легко удерживает self через closure.

Как отвечать: назвать критерии выбора, привести реальный пример и честно обозначить ограничения.

publisher.sink { [weak self] value in self?.handle(value) }.store(in: &bag)

Источники

Похожие вопросы