2015-09-03 56 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(或任何其他对象),它的工作原理。

相关问题