2017-02-22 1 views
0

だから私は、概念実証としてRxSwiftと本当に簡単な何かをしたいと思います:ボタンをRxSwiftのアレイにどのように接続しますか?

  1. クレートに観察配列。
  2. ボタンをクリックすると、配列に整数を追加します。
  3. 配列に> 10個の項目がある場合、配列は空です。

あなたがノブであれば、これはRxSwiftでは気にすることができません。

Thx。

答えて

1

最初に出力を開始し、入力が出力をどのように変更するかを検討します。

あなたの場合は、出力が指定されていないため、このような苦労を強いられる理由の一部になる可能性があります。

それでは、コンソールのボタンがクリックされるたびに番号の印刷を持つことから始めてみましょう:あなたは何が起こっているのを知っているので

let numbers = button.rx.tap.map { Int(arc4random()) } 

    numbers.subscribe(onNext: { contents in 
     print(contents) 
    }).addDisposableTo(bag) 

は、次のステップに行く前に上記を実行します。

今の配列にそれらを蓄積してみましょう:

let numbers = button.rx.tap.map { Int(arc4random()) } 
     .scan([Int](), accumulator: { (array, number) in 
      array + [number] 
     }) 

    numbers.subscribe(onNext: { contents in 
     print(contents) 
    }).addDisposableTo(bag) 

が今度は配列が< 10の要素のまま確認するためにガードを追加してみましょう...このことができます

let numbers = button.rx.tap.map { Int(arc4random()) } 
     .scan([Int](), accumulator: { (array, number) in 
      guard array.count < 10 else { return [] } 
      return array + [number] 
     }) 

    numbers.subscribe(onNext: { contents in 
     print(contents) 
    }).addDisposableTo(bag) 

ホープ!

関連する問題