Ios RxSwift PublishSubject被无意处置
我有一个视图控制器,它打开一个模式视图控制器,供用户从其库中拾取图像。为此,我使用了我编写的Ios RxSwift PublishSubject被无意处置,ios,rx-swift,Ios,Rx Swift,我有一个视图控制器,它打开一个模式视图控制器,供用户从其库中拾取图像。为此,我使用了我编写的dkmagepickercontroller的Rx包装器 视图控制器中的相关代码如下所示: fileprivate func addPicturesFromLibrary(){ guard let viewModel=self.viewModel else{return} 让pickerController=DKImagePickerController() pickerController.single
dkmagepickercontroller
的Rx包装器
视图控制器中的相关代码如下所示:
fileprivate func addPicturesFromLibrary(){
guard let viewModel=self.viewModel else{return}
让pickerController=DKImagePickerController()
pickerController.singleSelect=false
pickerController.maxSelectableCount=10
pickerController.showsCancelButton=true
pickerController.sourceType=.photo
pickerController.rx.didSelectAssets()
.debug(我怀疑是因为已完成的
通过第二个链(在MediaViewModel.bind中的那一个)传播,它将不再接收任何事件。我想您应该在这里使用订阅(onNext:{…})
而不是绑定
,这样可以避免发送错误和完成事件
另一种选择是使用PublishRelay
而不是PublishSubject
PublishRelay是PublishSubject
的包装器。与PublishSubject
不同,它不能以错误或已完成终止
第一个代码段中的disposeBag
是ViewController的属性吗?第二个代码段中的disposeBag
是ViewModel的属性吗?@shpasta是的,两者都是各自类的属性。