2012-01-11 4 views
0

카메라로 사진을 선택하면 NSData으로 저장됩니다. 이 작업은 오래 걸리고 사용자가 기다리는 것을 원하지 않습니다. 나는 그것이 배경에서 일어나길 원한다. 제 질문은 "dismissModalViewControllerAnimated:NO"이라고 부른 후에 방법을 수행하는 것이 현명한 방법인지 여부입니다.dismissModalViewControllerAnimated 후의 액션

DEBUG1
debug2
debug4
debug5
debug6
debug3

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

// Access the uncropped image from info dictionary 
UIImage *image = [info objectForKey:@"UIImagePickerControllerOriginalImage"]; 

NSLog(@"debug1"); 

// Save image in the normal photo album 
UIImageWriteToSavedPhotosAlbum(image, self, @selector(image:didFinishSavingWithError:contextInfo:), nil); 

NSLog(@"debug2"); 

[[MySingleton sharedSingleton] addImg:image]; 

NSLog(@"debug3"); 
[picker dismissModalViewControllerAnimated:NO]; 

[_delegate startStep2]; 

} 

-(void) addImg: (UIImage *) img { 

NSLog(@"debug4"); 

NSData *jpegData = UIImageJPEGRepresentation([img rotateAndScaleFromCameraWithMaxSize:1500.0], 0.9f); 

NSLog(@"debug5"); 

image = [[NSData alloc] initWithData:jpegData]; 

NSLog(@"debug6"); 
} 

내가의 ViewController 첫째을 닫고보다 수 :

다음과 같은 출력 내 코드입니다 다른 것들, 아니면 좋은 방법이 아닌가요?

[[MySingleton sharedSingleton] performSelectorInBackground:@selector(addImg:) withObject:image]; 

답변

0

[[MySingleton sharedSingleton] performSelectorInBackground : @selector (addImg :) withObject : image];

트릭을 했어.

0

당신이 retained 필요한 모든 정보가 있으면, 나는 당신이 선택 도구를 취소 할 수 있다고 생각 :

편집 // 나는이 작업을 수행하여 대기 문제를 해결했다.

0

먼저 컨트롤러를 닫고 먼저 컨트롤러를 닫는 것이 좋습니다. U는 처리가 계속 진행 중임을 사용자에게 알리는 작업 표시기를 추가 할 수 있습니다 ..

관련 문제