Tôi đã tìm thấy số guide này để nhận HTTP Body, phù thủy chứa thông báo lỗi có định dạng JSON với AFNetworking 2. Hướng dẫn nằm trong Objective-C và tôi đang cố gắng chuyển đổi nó sang Swift.Chuyển đổi mutableCopy thành Swift
Dưới đây là đoạn code tôi đang cố gắng để chuyển đổi thành 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]);
}
cụ thể hơn nó là một phần này có vấn đề:
NSMutableDictionary *userInfo = [(*error).userInfo mutableCopy];
Đây là mã hiện tại của tôi:
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
}
}
}
Làm cách nào để chuyển đổi dòng này thành Swift? Tôi khá mới với ngôn ngữ Swift/Objective-C, do đó, có thể có một giải pháp đơn giản cho nó, nhưng tôi đã không thể tìm thấy nó được nêu ra.
Và nó hoạt động như nó phải không? –
Nó hoạt động Michael, tôi đang sử dụng nó trong ứng dụng mới nhất của tôi. Hãy thử nó cho mình. Hãy cho tôi biết nếu bạn có bất kỳ vấn đề với nó ... – Borbea
Làm việc ở đây quá! Bạn đã có câu hỏi đúng! : D –