所以我想用RxSwift做一些非常简单的事情作为概念的证明:
如果你是一个菜鸟,这在RxSwift中是难以理解的。
THX。
答案 0 :(得分: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)
希望这有帮助!