我發現這個guide接收到一個HTTP Body,巫婆包含一個帶有AFNetworking 2的JSON格式的錯誤消息。該指南在Objective-C中,我正在盡我所能將它轉換爲Swift。將mutableCopy轉換爲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? 我對Swift/Objective-C語言很陌生,所以可能有一個簡單的解決方案,但我還沒有找到它。
它的工作原理應該如何? –
它適用於Michael,我在我的最新應用中使用它。親自嘗試一下。如果您有任何問題,請告訴我... – Borbea
也適用於此!你的問題是對的! :d –