2012-02-04 40 views
3

AFNetworking + JSONKit + iOS 5.0+ = JSON解析不起作用(试图解析时返回nil对象)。AFNetworking + JSONKit不能一起工作

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]; 
    } 
}]; 

回答

2

奇怪的是,JSONKit不与iOS 5个工作......不过,有覆盖JSONKit的JSON编码/解码,并首先尝试NSJSONSerialization,如果这是可用一种简单的方式。只需将#define _AFNETWORKING_PREFER_NSJSONSERIALIZATION_添加到项目中的头文件(可能为Prefix.pch),并且应该全部设置。

+2

谢谢。我只是切换到SBJSON,但它工作得很好。 – ninjaneer 2012-02-04 19:21:21