iOS - быть приложением камера выбрало изображение, чтобы послать странное поведение по электронной почте

I created a sample app to test how to send camera picked image as an attachment to an email. In that I have 2buttons. One(Camera button) which opens the camera & another button(Email Button) that opens the MFMailComposeViewController

imageAttachment объявлен в.h файле как тип UIImage

#pragma mark - Picker Controller delegate
- (void) imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
    imageAttachment = [info objectForKey:@"UIImagePickerControllerOriginalImage"];

//    [self performSelector:@selector(dismissCamera) withObject:nil afterDelay:2.0];

    [self performSelector:@selector(emailImage) withObject:nil afterDelay:1.0];
    [self dismissModalViewControllerAnimated:YES];

    [picker release];
}

В вышеупомянутом методе я столкнулся с проблемой. Если я некомментирую линию

//    [self performSelector:@selector(dismissCamera) withObject:nil afterDelay:2.0];

& comment the below lines

[self performSelector:@selector(emailImage:) withObject:image afterDelay:1.0];
[self dismissModalViewControllerAnimated:YES];

и позже я касаюсь почтовой кнопки тогда, она терпит крах. Это странно.. почему это терпит крах? Это терпит крах без любой ошибки.?

Это другие методы

- (void)emailImage
{
    MFMailComposeViewController *picker = [[MFMailComposeViewController alloc] init];
    picker.mailComposeDelegate = self;

    NSArray *toRecipients = [NSArray arrayWithObject:@"[email protected]"];
    [picker setToRecipients:toRecipients];

    [picker setSubject:@"Photo"];

    NSString *emailBody = @"Photo clicked ;
    [picker setMessageBody:emailBody isHTML:NO];

   //Create NSData object as PNG image data from camera image
    NSData *myData = UIImagePNGRepresentation(imageAttachment);

   //Attach image data to the email
   //'CameraImage.png' is the file name that will be attached to the email
    [picker addAttachmentData:myData mimeType:@"image/png" fileName:@"CameraImage.png"];

    [self presentModalViewController:picker animated:YES];
    [picker release];
}

Ниже код, который разбивает приложение.

- (void)dismissCamera
{
    [self dismissModalViewControllerAnimated:YES];
}

- (IBAction)btnEmailTouched:(id)sender
{    
    Class mailClass = (NSClassFromString(@"MFMailComposeViewController"));
    if (mailClass != nil)
    {
       //We must always check whether the current device is configured for sending emails
        if ([mailClass canSendMail])
            [self displayComposerSheet];
        else
            [self launchMailAppOnDevice];
    }
    else
        [self launchMailAppOnDevice];
}

#pragma mark Compose Mail
// Displays an email composition interface inside the application. Populates all the Mail fields.
-(void)displayComposerSheet
{
    MFMailComposeViewController *picker = [[MFMailComposeViewController alloc] init];
    picker.mailComposeDelegate = self;

    [picker setSubject:@"Photo"];

    [picker setToRecipients:[NSArray arrayWithObjects:@"[email protected]", nil]];

    NSString *emailBody = @"Photo clicked;
    [picker setMessageBody:emailBody isHTML:NO];

   //Create NSData object as PNG image data from camera image
    NSData *data = UIImagePNGRepresentation(imageAttachment);

   //Attach image data to the email
   //'CameraImage.png' is the file name that will be attached to the email
    [picker addAttachmentData:data mimeType:@"image/png" fileName:@"CameraImage.png"];

    [self presentModalViewController:picker animated:YES];

    [picker release];
}

PS: Both the methods, - (void)emailImage & -(void)displayComposerSheet uses the same code of lines. I am attaching the same imageAttachemnt object as an email attachment, but it is failing when I dismiss the camera & the touch the Email button to open MFMailComposeViewController

0
nl ja de
можно проверить ниже примера, он полностью настраивается github.com/zhanleewo/ZLMailComposerViewController Есть кнопка камеры, чтобы приложить фотографию также и намного больше также доступный список приложения
добавлено автор user3622576, источник

1 ответы

Почему вы освобождаете сборщика в методе

- (void) imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
0
добавлено
Я управлял тем же самым кодом, не выпуская случай сборщика. Никакой Успех: (
добавлено автор hp iOS Coder, источник
Это просто терпит крах без ошибки. Когда я поместил точку останова тогда, я нашел, что она не преобразовывает изображение в данные.
добавлено автор hp iOS Coder, источник
попробованный оба. сохраненный allowsEditing = ДА . & imageattachment = изображение . Все еще Никакой успех..: (
добавлено автор hp iOS Coder, источник
какую ошибку это показывает? Плохой доступ или sigbart?
добавлено автор Talha, источник
Ваш случай UIImage didn' у t есть изображение тогда, у вас есть imagepicker редактированием позволенного?
добавлено автор Talha, источник
используйте эту линию UIImage *изображение = [информация objectForKey:UIImagePickerControllerOriginalImage]; imageAttachment = изображение;
добавлено автор Talha, источник
можно ли послать мне код, таким образом, я могу проверить его и передать его обратно вам?
добавлено автор Talha, источник