1

我注意到 RxSwift 减慢了应用程序的速度,我不知道这是我的错还是框架的错。

我在 UICollectionViewCell 的自定义类中进行了绑定,该类是为配置单元格而触发的。例如这部分代码:

viewModel.observableIsHighlighted.asDriver().drive(onNext: { isHighlighted in
    // do nothing
}).disposed(by: disposeBag)
viewModel.observableIsMarked.asDriver().drive(onNext: { isMarked in
    // do nothing
}).disposed(by: disposeBag)

where observableIsHighlighted, observableIsMarkedare justBehaviorRelay<Bool>大约需要 16-20 毫秒,这对于 UICollectionView 当然是不可接受的。

另一部分是这样的:

imageViewTapGestureRecognizer.rx.event.bind(onNext: { _ in
    // do nothing
}).disposed(by: disposeBag)

大约需要 12 毫秒。

问题

我的方法有问题还是 RxSwift 中的绑定对于像这样的视图不准确UICollectionView

当然,我假设 RxSwift 中的绑定正是针对UICollectionView.

编辑

我如何测量时间?

我用CACurrentMediaTime()乘以1000。我知道这是最好的方法,但是非常简单的方法总是需要 0 毫秒,因此建议应该改进 10-20 毫秒的方法。

4

1 回答 1

2

我不敢相信,但我从我的内部进行了更新RxSwift,现在它完美地工作了。RxCocoa4.1.04.0Podfile

问题中的方法现在大约需要 0-1 毫秒。

希望这个问题对其他人有所帮助,或者也许有人会知道我为什么会遇到这种行为。

于 2018-01-07T17:27:04.820 回答