Я пытаюсь переключиться на Swift Bond 5 и Swift 3 в одном из моих проектов. У меня проблема с привязкой по двум направлениям. Как я могу преобразовать код ниже, поэтому, когда мой слайдер меняет его, он генерирует разный сигнал пошагово и устанавливает его значение, равное значению радиуса. В старых Bond 4 и Swift 2.3 все работало нормально, но я не знаю, как справиться с такой миграцией.Swift Bond 5 переход из 4 двунаправленных
let radiusSlider: UISlider = /* slider initialisation */
let radius = Observable<Float>(10.0)
let stepValue:Float = 50.0
let sliderStepObserver = radiusSlider.bnd_value.map { roundf($0/stepValue)*stepValue }.distinct()
radiusSlider.value = radius.value
radius.bidirectionalBind(to: sliderStepObserver) /* here is the problem */
Сообщение об ошибке говорит:
Argument type 'Signal<Float, DynamicSubject.Error>' (aka 'Signal<Float, NoError>') does not conform to expected type 'BindableProtocol'
Так что сигнал не Привязываемое больше. Есть ли у кого-нибудь идеи, как преобразовать этот кусок кода, чтобы двунаправленная привязка все еще работала?
Благодарим вас за ввод. Да, похоже, это не имеет смысла. Единственный думает, что материей в этом случае было обновление «радиуса» наблюдаемого с сигналом, испускаемым из ползунка. Другое направление вообще не требуется. Я не знаю, почему оригинальный разработчик сделал это правильно. Спасибо, в любом случае! –