действия после dismissModalViewControllerAnimated - PullRequest
0 голосов
/ 11 января 2012

После выбора фотографии с помощью камеры я сохраняю ее как 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];

Ответы [ 3 ]

0 голосов
/ 11 января 2012

Лучше сначала сделать что-то, а затем закрыть диспетчер вида.Вы можете добавить индикатор активности, чтобы пользователь знал, что обработка продолжается ..

0 голосов
/ 05 февраля 2012

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

сделал трюк ..

0 голосов
/ 11 января 2012

Как только у вас есть retained вся необходимая информация, я думаю, вы можете отменить сборщик.

...