2013-12-15 1 views
0

비동기 메서드를 올바르게 만들려고합니다. UIImagePickerController을로드하는보기 컨트롤러를 사용하고 있습니다. 사용자가 사진을 찍거나 하나를 선택하면 다음 위임 방법으로 결과 이미지가 수집됩니다. 이미지가 나는 다른 방법을 실행 확장 필요합니까메서드 내에서 올바른 위치/시간에 단절 수행 방법

// Check if the image size is too large from the selected images imageData 
    if ((imageData.length/1024) >= 1024) { 

경우 다음과 같이 필요한 경우이 방법 내에서

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

, 나는 이미지 크기를 축소. 크기가 괜찮 으면 아무 것도하지 않고 계속 진행합니다.

[self performSegueWithIdentifier:@"photoArea" sender:self]; 


가 어떻게이 방법 비동기을 만들 수 있습니다 질문 : 위의 일단

내가 다른 컨트롤러에 SEGUE 완료? 필요한 경우 이미지 스케일링이 완료되면 performSegue 메소드 만 호출하면됩니다. 메서드를 통해 실행하는 것이 아니라 올바른 시점에서만 호출되도록해야합니다.

현재 이미지 크기 조정이 여전히 발생하는 동안 segue를 호출 할 수 있습니다. 블록에 대해 알고 있지만 비동기 메서드를 완료하는 유일한 방법은 무엇인가?

+0

이미지의 크기는 어떻게 조정합니까? – Wain

+0

@Wain - 나는별로 중요하지 않다고 생각했다. 나는 다른 방법을 호출한다. [self scaleDownImage : image]; 그 순간. – StuartM

+0

백그라운드에서 실행해야하는 시간이 너무 오래 걸리거나 기본 스레드에서 실행하고 있습니까? – rdelmar

답변

1

동시성이 1 인 NSOperationQueue을 생성하고 확장 후 별도 작업으로 segue 호출을 사용하여 크기 조정 작업을 제출할 수 있습니다. 스케일링이 필요하지 않은 경우에는 즉시 segue가 발생합니다.

관련 문제