Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/97.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios RxSwift PublishSubject被无意处置_Ios_Rx Swift - Fatal编程技术网

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是的,两者都是各自类的属性。