2012-04-15 5 views
8

에 완료를 호출하지 이것은 내가 가지고있는 코드 :dismissviewcontrolleranimated 완성 UIImagePickerController를

-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info { 


    [picker dismissViewControllerAnimated:YES completion:^(void){ 
     NSLog(@"Test"); 

    }]; 
} 

그것은 모달 뷰 컨트롤러를 일축하지만, 완료 인수를 호출하지 않습니다. 내가 뭐 잘못하고 있니?

답변

17

무효 완료 핸들러는 간단한 ^{으로 가득, 나는 이 이미지 피커가

[picker dismissViewControllerAnimated:YES completion:^{ 
     NSLog(@"Test"); 

    }]; 

내가 가지고 올 수있는 유일한 가능한 설명이된다 .... 전에 구문 본 적이 없어 어떤 다른 수단에 의해 해고되고, 당신이 대리인이 아니기 때문에 (그러므로 당신은 didFinishPickingMediaWithInfo 메시지를받지 못할 것입니다). 다른 가능성은 그 당시의 SDK 내에서의 실패 일 수 있습니다. 빠른 예제 프로젝트를 실행하면 두 구문 모델 모두에서 예상대로 완료 블록이 실행됩니다.

+0

실제로 게시자가 위에 게시 한 것처럼 작동하지 않았기 때문에 실제로 넣었습니다. 나는 그것을 되돌 렸고, 여전히 효과가 없다. – Andrew

+0

로그의 오른쪽을 사용하고 있습니까? 가장 먼 오른쪽 버튼을 선택해야합니다. – CodaFi

+1

이 구문과 질문의 구문은 동일합니다. 임의의'^ void (void) {NSLog (@ "Test"); }','^ (void) {NSLog (@ "Test"); }'또는'^ {NSLog (@ "Test"); }'는 정확히 같은 블록이됩니다. IOW, 아무것도 지정되지 않은 경우 블록의 반환 유형 및 매개 변수 목록에 대해 'void'가 가정됩니다. –

관련 문제