在swift中使用template / generic与typealias

时间:2015-07-07 07:50:54

标签: ios swift templates generics

假设我们有这样的方法:

for(int i = 0; i<=1; i++, row++)

在您必须“直接”调用此方法之前,没有任何问题:

func retrieve<T>(completion: (response: ResponseItems<T>?, error: NSError?) -> Void) {
   /* whatever */
}

现在的问题是:如果我想用泛型类类型调用此方法?

我有:

service.retrieve { (response: ResponseItems<Myclass>?, error) -> Void in

}

任何帮助将不胜感激!

注意,枚举中的所有类类型都从基类Mappable继承。

更新

基本上,retrieve方法对API执行请求并返回jsonReponse,然后我必须使用ObjectMapper将其映射到通用对象。

enum ClassType: String {
  case FirstClass: "FirstClass"
  case SecondClass: "SecondClass"
  case FooClass: "FooClass"
}

func retrieveAll() {
  for i in 1...3 {
     /* suppose that this method returns class name from enum */
     let classStringName = self.getClassName(i)
     /* here TRICK */
     service.retrieve{ (response: ResponseItems<WHAT??>?, error) -> Void in

     }
  }
}

我不想更改检索功能行为,我希望它保持“无知”,并将问题委托给调用者。

0 个答案:

没有答案