我有一个通用函数,它调用 Web 服务并将 JSON 响应序列化回对象。
class func invokeService<T>(service: String, withParams params: Dictionary<String, String>, returningClass: AnyClass, completionHandler handler: ((T) -> ())) {
/* Construct the URL, call the service and parse the response */
}
我想要实现的是这个 Java 代码的等价物
public <T> T invokeService(final String serviceURLSuffix, final Map<String, String> params,
final Class<T> classTypeToReturn) {
}
AnyClass
指定为
做正确的事?MyObject.self
作为返回的 Class 值,但是我得到了一个编译的 错误“无法将表达式的类型’()’转换为类型‘ String’”CastDAO.invokeService("test", withParams: ["test" : "test"], returningClass: CityInfo.self) { cityInfo in /*...*/
}
编辑:
我尝试使用 object_getClass
,正如 holex 提到的,但现在我得到:
错误: “键入‘ CityInfo.Type’不符合协议‘ AnyObject’”
需要做些什么才能符合协议?
class CityInfo : NSObject {
var cityName: String?
var regionCode: String?
var regionName: String?
}