在swift中调用泛型函数时如何指定类型?

时间:2015-09-03 03:08:18

标签: swift generics

我已经使用以下签名定义了一个函数:

 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)   
  }

但这导致错误说:

  

错误:(33,12)无法找到过载到RACSignal&#39;接受类型&#39;(信号)&#39;

的参数列表

我做错了什么?

1 个答案:

答案 0 :(得分:1)

我只是想通了。问题是String不是Swift中的对象。替换为NSString(或任何其他对象),它可以工作。