使用 ReactiveCocoa 将元素信号转换为具有大小的数组

Transform signal of elements into arrays with size using ReactiveCocoa

我正在尝试找到一种方法,将发送 X 元素的信号转换为受大小限制的 X 元素数组。

类似于:

signal.take(2).collect().observeNext{变化 我的功能(变化) }

但是完成后就死了。我需要它是:

有什么想法吗?

我解决了这个任务(定位),这是我的解决方案

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 }
    }
}

https://github.com/ReactiveCocoa/ReactiveCocoa/pull/2817