[英]Object Mapping issue with RESTKit+Swift
尝试打印错误描述时,我使用RestKit和Swift遇到对象映射问题。 下面是我用来映射RestKit错误的代码:
let errorObjectMapping = RKObjectMapping(forClass: MyErrorModelClass.self)
errorObjectMapping.addAttributeMappingsFromArray([
"reason",
"errorMessage"
])
let errorCodes = NSMutableIndexSet()
errorCodes.addIndexes(RKStatusCodeIndexSetForClass(UInt(RKStatusCodeClassClientError)))
errorCodes.addIndexes(RKStatusCodeIndexSetForClass(UInt(RKStatusCodeClassServerError)))
objectManager.addResponseDescriptor(RKResponseDescriptor(
mapping: errorObjectMapping,
method: RKRequestMethod.Any,
pathPattern: nil,
keyPath: "error",
statusCodes: errorCodes))
我在其中打印错误说明的代码块:
failure: { (objectRequestOperation: RKObjectRequestOperation!, error: NSError!) -> Void in
println("error \(error).")
}
打印错误说明:
Error Domain=org.restkit.RestKit.ErrorDomain Code=1004 <MyErrorModelClass: 0x17023bc00>" UserInfo=0x17406e480 {RKObjectMapperErrorObjectsKey=(
"<MyErrorModelClass: 0x17023bc00>
我假设您想从RestKit NSError对象获取自定义错误对象。 我认为您可以使用以下方法实现此目的:
let customError = error.userInfo?[RKObjectMapperErrorObjectsKey] as? MyErrorModelClass
如果使用的是RestKit v2.x ,则应该以这种方式访问错误对象:
if let errorMessage = error.userInfo?[RKObjectMapperErrorObjectsKey]?.firstObject as? MyErrorModelClass{
//do your stuff
}
我认为您只是错过了将其显示在alertView中的调用。
var alert = UIAlertController(title: "Alert", message: error.localizedDescription, preferredStyle: UIAlertControllerStyle.Alert)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.