Так что мой подход был неверным, так как skip(while:)
применяется только при начале сигнала. Поскольку начальное значение удовлетворяло его критериям, сигнал был разрешен для продолжения, и проверка skip(while:)
в дальнейшем игнорировалась.
Правильный вызов - это команда filter(:)
, как показано здесь:
.filter({ itemCount -> Bool in return itemCount != 0 })
Использование фильтра не влияет на сигнал, вместо этого сосредотачиваясь на том, следует ли вам наблюдать переданное значение.