假设我们有这样的方法:
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
}
}
}
我不想更改检索功能行为,我希望它保持“无知”,并将问题委托给调用者。