2016-02-24 111 views
4

我正在爲我的iOS應用程序使用RxSwift。RxSwift無法識別訂閱方法

我有一個函數返回一個Observable的項目,稱爲Repository

func search(query: String) -> Observable<Repository> 

基本上它向github發出一個網絡請求,下載給定搜索查詢的存儲庫。

現在,當我調用這個函數,我按照RxSwift documentation的例子:

search(queryText).subscribeNext({ repo in 
      print(repo) 
     }) 

但Xcode中說

不能援引 'subscribeNext' 類型的參數列表「((庫) - >())」

這是奇怪的,因爲這是Xcode中建議,當我使用自動完成起訴。我已經嘗試清理並重新構建。即使使用其他訂閱方法,我也會遇到同樣的錯誤。

那麼,這有什麼問題?

回答

4

功能subscribeNext是類型

((E) -> Void) -> Disposable

您提供的閉包是正確的類型的。 也許你呼叫的地方subscribe不期待 Disposable

+0

太棒了!是的,錯誤是完全誤導。該代碼被封裝到一個沒有返回類型的函數中。在函數返回中添加Disposable類型解決了這個問題。 –