我注意到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)
其中observableIsHighlighted
,observableIsMarked
只是BehaviorRelay<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毫秒的方法,应该得到改进。
答案 0 :(得分:2)
我无法相信,但我在RxSwift
内的RxCocoa
更新了4.1.0
和4.0
至Podfile
,现在效果非常好。
问题的方法现在需要大约0-1毫秒。
希望这个问题可以帮助别人,也许任何人都知道我为什么会遇到这种行为。