私は自分のプロジェクトの中でスウィフトボンド5とスウィフト3に切り替えようとしています。 2方向バインディングに問題があります。スライダが変化しているときに、次のコードを次のように変換するにはどうすればよいですか?ステップごとに異なる信号を出し、その値を半径で観測可能な値に設定します。古いボンド4とスウィフト2.3ではすべてがうまくいっていましたが、この種の移行をどのように処理するのか分かりません。スウィフトボンド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'
だから信号はもうバインド可能ではありません。双方向バインディングがまだ機能するように、このコードを変換する方法はありますか?
ありがとうございます。はい、これは本当に意味をなさないと思われます。この場合重要なことは、スライダから放出される信号で観測可能な「半径」を更新することだけだったと考えます。他の方向は全く必要ありません。私は元の開発者がそれを正しくした理由を知らない。とにかくありがとう! –