2015-09-03 79 views
2

我已經定義的函數具有以下簽名:如何在swift中調用泛型函數時指定類型?

public func loginUser(username: String) -> ReactiveCocoa.Signal<String, NSError> 

我試圖調用該方法toRACSignal,並通過它的loginUser結果。

toRACSignal的簽名是:

func toRACSignal<T, E>(signal: ReactiveCocoa.Signal<T, E>) -> RACSignal 
func toRACSignal<T, E>(signal: ReactiveCocoa.Signal<T?, E>) -> RACSignal 

我的嘗試是這樣的:

public func RACLoginUser(username: String) -> RACSignal { 
    let signal = loginUser(username) 
    return toRACSignal(signal) 
    } 

,但是這將導致一個錯誤說:

Error:(33, 12) cannot find an overload for 'toRACSignal' that accepts an argument list of type '(Signal)'

我在做什麼錯?

回答

1

我只是想通了。問題在於String不是Swift中的對象。替換爲NSString(或任何其他對象),它的工作原理。

相關問題