1

我正在寻找我最近的签到,以及找到地名。我目前要求 user_status 权限。我首先请求这样的数据:

-(void) makeCheckinRequest{
NSString *query =
@"{"
@"'checkins':'SELECT coords, page_id, timestamp FROM checkin WHERE author_uid= me()',"
@"'places':'SELECT name FROM place WHERE page_id IN (SELECT page_id FROM #checkins)',"
@"}";

NSDictionary *queryParam =
[NSDictionary dictionaryWithObjectsAndKeys:query, @"q", nil];
// Make the API request that uses FQL
[FBRequestConnection startWithGraphPath:@"/fql"
                             parameters:queryParam
                             HTTPMethod:@"GET"
                      completionHandler:^(FBRequestConnection *connection,
                                          id result,
                                          NSError *error) {
                          if (error) {
                              NSLog(@"Error: %@", [error localizedDescription]);
                          } else {
                              [self extractRelevantRecentCheckinsFor:result];
                              NSLog(@"Result: %@", result);
                          }
                      }];

}

...然后我截取此方法返回的数据:

-(void) extractRelevantRecentCheckinsFor:(id) graphObject{

NSDictionary *resultDict = (NSDictionary *)graphObject;
NSArray *data = [resultDict objectForKey:@"data"];
for (FBGraphObject *friendObj in data) {
    NSDate *date = [NSDate dateWithTimeIntervalSince1970:
                    [[friendObj objectForKey:@"timestamp"] intValue]];
    DLog(@"checkin date is %@", [[theStoryline.common dayAndTime] stringFromDate:date]);
}

}

问题是data包含两个FBGraphObjects包含不匹配的项目计数。FBGraphObject带有键名的:有checkins15 个对象,所有对象都具有有效坐标。

FBGraphObject带有键名:有places14 个对象。

你怎么可能得到不同的数组大小?

4

1 回答 1

1

找到了答案:事实证明,每次您签到时,Facebook 都会向您返回一个“签到”列表,但是(至少是我编写多查询的方式)它会返回一个唯一的列表'地方'。这意味着我在一个地方登记了两次。

于 2013-03-18T18:45:23.870 回答