AFNetworking + JSONKit + iOS 5.0+ = JSON解析不起作用(尝试解析时返回nil对象)。
AFNetworking + iOS 5.0+ = JSON解析工作正常。
AFNetworking + JSONKit + iOS 4.X = JSON解析工作
AFNetworking + iOS 4.X = JSON解析不起作用(因为NSJSONSerializer仅适用于iOS5.0 +)。
我该如何解决这个问题?代码片段:
AFJSONRequestOperation *operation = [AFJSONRequestOperation JSONRequestOperationWithRequest:request success:^(NSURLRequest *request, NSHTTPURLResponse *response, id JSON) {
if([sender respondsToSelector:finish])
{
NSArray *responseArray = JSON;
[sender performSelector:finish withObject:JSON];
}
} failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error, id JSON) {
NSLog(@"Error retrieving: %@\n%@", error, response);
if([sender respondsToSelector:fail])
{
[sender performSelector:fail];
}
}];
答案 0 :(得分:2)
奇怪的是JSONKit不适用于iOS 5 ......尽管如此,有一种简单的方法可以覆盖JSONKit以进行JSON编码/解码,并且首先尝试NSJSONSerialization,如果可用的话。只需将#define _AFNETWORKING_PREFER_NSJSONSERIALIZATION_
添加到项目中的头文件(也许是Prefix.pch
),您就应该全部设置。