2017-12-19 6 views
0

:)によっては、だから、以下のコードは、errrorRxSwift:配置された(すごみ

var doneSubscription: Disposable = item.doneSubjectObservable 
     .debug("doneSubscriptions") 
     .subscribe(
      onNext: { 
       done in self.validateDone(done: done, item: item) 
     }).disposed(by: disposeBag) 

Value of type '()' does not conform to specified type 'Disposable' on the line .disposed(by: disposeBag)

でコンパイルしかし、私はエラーなしでこれを行うことができます:

​​

私がやったすべてがありますサブスクリプションチェーンから.disposed(by: disposeBag)を移動しました。

私は何かが欠けていますか?これらの2つのアプローチは同等ですか?

答えて

4

いいえ、これらは同等ではありません。これはあなたにエラーを与え、何も返さないdisposed(by:)ので

item.doneSubjectObservable 
    .debug("doneSubscriptions") 
    .subscribe(
     onNext: { 
      done in self.validateDone(done: done, item: item) 
    }).disposed(by: disposeBag) 

:最初のケースで

は、あなたは、 doneSubscriptionにタイプ Disposableの変数をこの式全体の返り値を格納しています。 しかし、2番目のケースでは、実際に Disposableを変数 doneSubscriptionに割り当てました。戻り値は subscribeです。

最初のケースを修正するには、単に変数宣言を削除します。

+0

シンプルで完璧な説明:)したがって+1 –

関連する問題