После выбора фотографии с помощью камеры я сохраняю ее как NSData
.Это занимает некоторое время, и я не хочу, чтобы мои пользователи ждали этого.Я хочу, чтобы это произошло на заднем плане.Мой вопрос заключается в том, целесообразно ли выполнять методы после вызова "dismissModalViewControllerAnimated:NO
".
Это мой код, который выводит следующее:
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];