使用 ReactiveCocoa 将元素信号转换为具有大小的数组
Transform signal of elements into arrays with size using ReactiveCocoa
我正在尝试找到一种方法,将发送 X 元素的信号转换为受大小限制的 X 元素数组。
类似于:
signal.take(2).collect().observeNext{变化
我的功能(变化)
}
但是完成后就死了。我需要它是:
- 取2个元素
- 将数组发送到函数
- 重复
有什么想法吗?
我解决了这个任务(定位),这是我的解决方案
extention SignalProducer {
func accumulate(size: Int) -> SignalProducer<[Value], Error> {
var values: [Value] = []
func next(value: Value) {
if values.count >= size {
values.removeAll()
}
values.append(value)
}
return on(next: next)
.filter { _ in values.count < size }
.map { _ -> [Value] in return values }
}
}
我正在尝试找到一种方法,将发送 X 元素的信号转换为受大小限制的 X 元素数组。
类似于:
signal.take(2).collect().observeNext{变化 我的功能(变化) }
但是完成后就死了。我需要它是:
- 取2个元素
- 将数组发送到函数
- 重复
有什么想法吗?
我解决了这个任务(定位),这是我的解决方案
extention SignalProducer {
func accumulate(size: Int) -> SignalProducer<[Value], Error> {
var values: [Value] = []
func next(value: Value) {
if values.count >= size {
values.removeAll()
}
values.append(value)
}
return on(next: next)
.filter { _ in values.count < size }
.map { _ -> [Value] in return values }
}
}