Facebook json数据错误,可可错误3840

时间:2014-04-09 12:46:31

标签: objective-c facebook-fql json

我试图从Facebook获取数据,但是当我尝试将数据解析为字典时,我收到此错误:

Mistake: Error Domain=NSCocoaErrorDomain Code=3840 "The operation couldn’t be completed. (Cocoa error 3840.)" (No value.) UserInfo=0x144ad420 

这是我的代码:

NSString *query =
 @"SELECT page_id, type FROM page_fan WHERE uid = me() ";
 // Set up the query parameter
 NSDictionary *queryParam = @{ @"q": query };
 // Make the API request that uses FQL
 [FBRequestConnection startWithGraphPath:@"/fql"
 parameters:queryParam
 HTTPMethod:@"GET"
 completionHandler:^(FBRequestConnection *connection,
 id results,
 NSError *error) {
 if (error) {
 NSLog(@"Error: %@", [error localizedDescription]);
 } else {


 BOOL can = [NSJSONSerialization isValidJSONObject:results];
 NSLog(@"can %d", can);

 NSError *mistake;
 NSDictionary *first = [NSJSONSerialization JSONObjectWithData:results options:0 error:&mistake];


 if (mistake) {
 NSLog(@"Mistake: %@", mistake);
 } else {
 NSLog(@"No mistake");
 }

can标识符返回' 1'所以我假设错误与Facebook提供的数据无关。

来自Facebook的数据正在恢复正常,这是一个结果样本:

data =     (
                {
            "page_id" = 253370381511811;
            type = "PUBLIC FIGURE";
        },
                {
            "page_id" = 148389618201;
            type = "LOCAL BUSINESS";
        },
                {
            "page_id" = 213631462169238;
            type = COMMUNITY;
        }

1 个答案:

答案 0 :(得分:0)

我不知道该库,但您编写的代码不可能正常工作。

isValidJSONObject是一种方法,用于检查您是否有可以序列化为JSON的对象,即NSArray或NSDictionary,其中仅包含可以序列化为JSON的键和值。

JSONObjectWithData是一个接受NSData对象并将其反序列化为NSArray或NSDictionary的方法。

由于NSData对象在isValidJSONObject中始终失败,并且NSDictionary或NSArray永远不是JSONObjectWithData的有效输入,因此其中一个调用必须失败。