Начните с выходов первым, а затем определите, как ваши входы изменяют ваш выход.
В вашем случае вы не указали выход, так что это может быть частью того, почему у вас такое трудное время.
Итак, давайте начнем, имея печать номера на консоль каждый раз, когда нажата кнопка:
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)
Надеется, что это помогает!