【发布时间】:2016-02-25 20:02:13
【问题描述】:
我正在使用 Alamofire 发出 GET 请求,并正在使用 ObjectMapper 库将响应转换为它自己的 Swift 类。
Alamofire.request(self.REST_METHOD!, self.REQUEST_URL, headers : ["Authentication_Token" : authToken]).responseJSON { response in
if response.response != nil && response.response?.statusCode == 200 {
let json = JSON((response.result.value as? NSDictionary)!)
let classType : AnyObject.Type = NSClassFromString(entityType)! as AnyObject.Type
//let model = Mapper<classType>.map(json.rawString())
}
}
entityType 变量可以是多种类型之一,即 User、Student、Teacher、Staff 等。我正在尝试动态创建一个类类型并基于它创建模型。
但是它在let classType : AnyObject.Type = NSClassFromString(entityType)! as AnyObject.Type 行崩溃并给出错误消息:
致命错误:在展开可选值时意外发现 nil
此外,当我取消注释 let model = Mapper<classType>.map(json.rawString()) 行时,它会给我一个编译器错误:
classType 不是类型
上面的代码有什么问题
【问题讨论】:
-
您为什么认为这段代码有问题?你期望会发生什么?实际发生了什么?
-
抱歉,添加了更多细节
-
什么是 entityType ?
-
致命错误的原因是 NSClassFromString(entityType) 返回 nil。第二个(编译器)错误的原因是 AnyObject 是协议。要查看他的类型,请使用 AnyObject.self,它会为您提供 AnyObject.Protocol。
-
@Roee84 在本例中,entityType 是 Student。项目名称是大学
标签: swift objectmapper