나는 하나의 배열에 FB 사용자의 albumIds를 가지고 있습니다. albumId, 과 같이 다음과 같은 메서드를 호출해야하는 각 앨범의 이미지를 가져 오려고합니다. For 루프, 그래서이 문제는 어떻게For 루프를 완료 호출 핸들러 메서드를 호출하십시오
arrAlbumIds=(11523252,11523245,11523278)
for (int i=0; i<arrAlbumIds.count; i++) {
NSString * graphPath=[NSString stringWithFormat:@"/%@/photos",[arrAlbumIds objectAtIndex:i]];
[FBRequestConnection startWithGraphPath:graphPath
parameters:nil
HTTPMethod:@"GET"
completionHandler:^(
FBRequestConnection *connection,
id result,
NSError *error
) {
/* handle the result */
NSLog(@"album images:%@",result);
FBGraphObject * response=[[FBGraphObject alloc]init];
response=result;
NSMutableDictionary * dictImagesData=[[NSMutableDictionary alloc]init];
dictImagesData=response;
NSMutableArray * arrImagesData=[[NSMutableArray alloc]init];
arrImagesData=[dictImagesData valueForKey:@"data"];
FBGraphObject * fbGraphImages=[[FBGraphObject alloc]init];
fbGraphImages=[arrImagesData valueForKey:@"images"];
NSDictionary * dictImages=[[NSDictionary alloc]init];
dictImages=fbGraphImages;
NSMutableArray * arrImages=[[NSMutableArray alloc]init];
arrImages=[arrImagesData valueForKey:@"images"];
//Get Url of Each Image
//self.arrFbAlbumImages=[[NSMutableArray alloc]init];
[arrFacebookAlbumThumbnail addObject:[arrImages valueForKey:@"source"]];
NSLog(@"arrFacebookAlbumThumbnail=%@",arrFacebookAlbumThumbnail);
}];
}
For 루프에 완료 핸들러와 메소드를 호출하는 방법을 가르쳐주세요 완료 핸들러가 응답 을 받고 있지 않다 기능 : 나는 모든 앨범 이미지를 원 문제 "graphPath FBRequestConnection startWithGraphPath"를 호출하지 않고 루프를 들어 실행하는 것입니다
당신이 요구하고 정확하게 불분명의 다음 페이스 북의 전화를 호출합니다. 이 코드에는 재귀가 없습니다 – Paulw11
FBRequestConnetion startWithGrapPath : 이 메서드는 for 루프에서 호출되고 있지만 for 루프 실행은 완료 처리기 메서드가 호출되지 않는 이유를 완료 대기자가 아닙니다. – user3673300
이것은 반복입니다. 재귀가 아닙니다. http://en.wikipedia.org/wiki/Recursion_ (computer_science)이 메서드는 네트워크 작업이 시간이 오래 걸리기 때문에 비동기입니다. 완료 처리기는 작업이 완료되었을 때 호출되지만'startWithGraphPath'가 즉시 – Paulw11