Я пытаюсь использовать UIImagePickerController, чтобы позволить моим пользователям выбирать фотографии или делать фотографии, которые будут использоваться в моем приложении. Но приложение, похоже, чаще всего разбивается, когда изображение выбирается из их фотографий или когда они предпочитают использовать фотографию. Я использовал объекты NSZombie и я получаю сообщение:iOS 7 сбой BAD_ACCESS при использовании UIImagePickerController
[NSISRestrictedToNonNegativeVariable сохранить]: сообщение, отправленное высвобождены например 0x168c3530
Я не знаю, что здесь происходит. Эта же проблема возникла, когда я периодически представлял модальный вид.
Вот мой код для представления UIImagePickerController и обработки ответа:
- (void)actionSheet:(UIActionSheet *)actionSheet didDismissWithButtonIndex:(NSInteger)buttonIndex
{
if ([[actionSheet buttonTitleAtIndex:buttonIndex] isEqualToString:CANCEL_TITLE]) {
return;
}
UIImagePickerControllerSourceType sourceType = buttonIndex == 0 ? UIImagePickerControllerSourceTypePhotoLibrary : UIImagePickerControllerSourceTypeCamera;
UIImagePickerController* controller = [[UIImagePickerController alloc] init];
controller.sourceType = sourceType;
[controller setDelegate:self];
if (buttonIndex == 1) {
//PNCoverOverlayView* overlayView = [PNCoverOverlayView viewWithNibNamed:nil];
//[controller setCameraOverlayView:overlayView];
[controller setShowsCameraControls:YES];
}
[self presentViewController:controller animated:YES completion:nil];
}
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
[picker dismissViewControllerAnimated:YES completion:^{
UIImage* originalImage = info[UIImagePickerControllerOriginalImage];
_imageToUpload = originalImage;
CGFloat scaleAdjust = ([[UIScreen mainScreen] respondsToSelector:@selector(scale)] && [[UIScreen mainScreen] scale] == 2) ? 0.5 : 1;
CGFloat length = LENGTH * scaleAdjust;
if ([picker sourceType] == UIImagePickerControllerSourceTypeCamera) {
PNCoverOverlayView* overlay = (PNCoverOverlayView*)[picker cameraOverlayView];
CGSize overlaySize = [overlay frame].size;
UIImage* cropped = [UIImage imageCroppedToSize:overlaySize fromImage:originalImage];
_imageToUpload =[UIImage imageResizedToSize:CGSizeMake(length, length) fromImage:cropped];
} else {
_imageToUpload = [UIImage imageScaledToMaximumLength:length fromImage:originalImage];
}
[self performSegueWithIdentifier:@"reviewPhotoUpload" sender:self];
}];
}
Я закомментирована добавление пользовательского наложения на UIImagePickerController, потому что исправили приложение сбой при представлении UIImagePickerController
Решена ли ваша проблема? – NeverHopeless
Нет. Моя проблема не разрешена. – user3072533
Испытывая ту же проблему, по-прежнему не найдено способов решить эту проблему. –