最近のチェックインを取得し、地名を見つけたいと思っています。現在、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
2つが含まれていることです。キー名の:FBGraphObjects
には15個のオブジェクトがあり、すべて有効な座標を持っています。 FBGraphObject
checkins
FBGraphObject
キー名の:にplaces
は14個のオブジェクトがあります。
異なる配列サイズを取得することはどのように可能でしょうか?