将mutableCopy转换为Swift
发布时间:2020-12-14 05:00:09 所属栏目:百科 来源:网络整理
导读:我发现这个 guide收到一个HTTP Body,女巫包含一个带有AFNetworking 2的JSON格式错误信息.该指南是在Objective-C中,我正在尽我所能将其转换为Swift. 这是我试图转换为Swift的代码: - (id)responSEObjectForResponse:(NSURLResponse *)response data:(NSData
我发现这个
guide收到一个HTTP Body,女巫包含一个带有AFNetworking 2的JSON格式错误信息.该指南是在Objective-C中,我正在尽我所能将其转换为Swift.
这是我试图转换为Swift的代码: - (id)responSEObjectForResponse:(NSURLResponse *)response data:(NSData *)data error:(NSError *__autoreleasing *)error { if (![self validateResponse:(NSHTTPURLResponse *)response data:data error:error]) { if (*error != nil) { NSMutableDictionary *userInfo = [(*error).userInfo mutableCopy]; NSError *jsonError; // parse to json id json = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:&jsonError]; // store the value in userInfo if JSON has no error if (jsonError == nil) userInfo[JSONResponseSerializerWithDataKey] = json; NSError *newError = [NSError errorWithDomain:(*error).domain code:(*error).code userInfo:userInfo]; (*error) = newError; } return (nil); } return ([super responSEObjectForResponse:response data:data error:error]); } 更具体的是,这部分存在问题: NSMutableDictionary *userInfo = [(*error).userInfo mutableCopy]; 这是我目前的代码: class JSONResponseSerializerWithData: AFJSONResponseSerializer { let JSONResponseSerializerWithDataKey: NSString = "JSONResponseSerializerWithDataKey" override func responSEObjectForResponse(response: NSURLResponse!,data: NSData!,error: NSErrorPointer) -> AnyObject? { if(!self.validateResponse(response as NSHTTPURLResponse,data: data,error: error)) { if(error != nil) { // The question..... var jsonError: NSError // parse to json // Missing some returns with AnyObejct... } return nil } } } 如何将此行转换为Swift? 解决方法
我找到了描述如何在AFNetworking 2中解析错误消息的相同指南,这是我在Swift中的实现:
override func responSEObjectForResponse(response: NSURLResponse!,error: NSErrorPointer) -> AnyObject! { if !self.validateResponse(response as! NSHTTPURLResponse,error: error) { if error != nil { var userInfo = error.memory!.userInfo! var jsonError:NSError? let json: AnyObject? = NSJSONSerialization.JSONObjectWithData(data!,options: NSJSONReadingOptions.AllowFragments,error: &jsonError) userInfo[JSONResponseSerializerWithDataKey] = json; error.memory = NSError(domain: error.memory!.domain,code: error.memory!.code,userInfo: userInfo) } return nil } return super.responSEObjectForResponse(response,error: error) } 希望这会对某人有所帮助. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |