首页 > 解决方案 > RxSwift 仅在添加新元素时观察数组变化

问题描述

有没有办法仅在添加新元素时订阅数组更改?

所以我希望只有在添加新元素时才执行以下闭包。

array.asObservable().subscribe(onNext: { array in

}).disposed(by: self.bag)

例如,如果从这个数组中删除了一个元素,我不希望执行这个闭包。

编辑:

有没有办法在闭包中只包含新附加的元素?在我的例子中,我附加了不同长度的子序列,所以我不能只看闭包内数组的最后一个元素。

标签: iosswiftrx-swift

解决方案


也许是这样的

 let array = Variable<[Int]>([])
        array.asObservable().distinctUntilChanged { $0.count > $1.count}.subscribe(onNext: {
            print($0)
        }).disposed(by: disposeBag)

        array.value.append(1) //called
        array.value.append(2) //called
        array.value.remove(at: 0) //not called
        array.value.append(3) //called

推荐阅读