2012-01-11 6 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は、処理が継続していることをユーザーに示すアクティビティインジケータを追加することができます。

関連する問題