Почта не отправлялась, когда Wi-Fi выключен, и ошибка не отображается

-(void)mailComposeController:(MFMailComposeViewController *)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError *)error

NSString *eventResult = nil;

[self dismissModalViewControllerAnimated:YES];

switch (result) {

    case MFMailComposeResultSent:

            eventResult = @"Mail Sent Succesfully";
            break;

    case MFMailComposeResultSaved:

            eventResult = @"Saved into draft";
            break;
    case MFMailComposeResultCancelled:

            eventResult = @"Mail Canceled";
            break;
    case MFMailComposeResultFailed:

            NSLog(@"Mail Fail:%@",[error localizedDescription]);
            eventResult = @"Mail failed";
            break;
}
    //alert for show status of mail

UIAlertView *mailStatusAlert  = [[UIAlertView alloc]initWithTitle:@"Email Alert" message:eventResult delegate:nil cancelButtonTitle:nil otherButtonTitles:@"Ok", nil];
[mailStatusAlert show];
[mailStatusAlert release]

Я использовал выше код для обработки статуса почты, он работает нормально, когда Wi-Fi включен, но если Wi-Fi отключен, ошибка не отображается, как ошибка. Но мне нужна эта проверка. Есть ли другой способ справиться с этой ошибкой? и я могу отключить ориентацию ландшафтов mailcomposeviewcontroller, потому что мое приложение поддерживает только портрет.

2
nl ja de
нет необходимости проверять эту ошибку, mfmailcomposeviewcontroller отправит эту почту отправителю, почтовому приложению на iPhone и немедленно отправит эту почту, как только будет доступен интернет, поэтому вам не нужно об этом беспокоиться.
добавлено автор P.J, источник
сначала проверьте, доступен ли интернет, а затем отправляйте почту, чтобы избежать MFMailComposeResultFailed. Теперь, если вы случайно отправили почту, а WIFI вышел, тогда вам не нужно беспокоиться, что @Prateek в этом случае прав.
добавлено автор Paresh Navadiya, источник
Вы можете использовать класс Reachability, чтобы сначала проверить подключение к Интернету, а затем отправить электронное письмо.
добавлено автор spider1983, источник
MFMailComposeResultFailed Это в основном связано с ошибкой композиции почты.
добавлено автор spider1983, источник
ok.what является использование ошибки в mfmailcomposeviewcontroller?
добавлено автор karan, источник

2 ответы

Из официального документа в раздел обзор , здесь даются разъяснения:

Это позволяет создавать электронные письма даже в ситуациях, когда пользователь    не имеет доступа к сети , например, в режиме самолета. Этот интерфейс   не дает вам возможности проверить, действительно ли были электронные письма   отправлено.

Поэтому вам не нужно беспокоиться о своем подключении к Интернету к моменту создания вашей электронной почты.

Как упоминалось spider1983 , стоит проверить подключение к Интернету с помощью класса Reachability от Apple или сторонняя версия (последняя совместима с ARC и GCD)

2
добавлено
MFMailComposeViewController* controller = [[MFMailComposeViewController alloc] init];

if(controller){

   controller.mailComposeDelegate = self;
   [controller setSubject:@"My Subject"];
   [controller setMessageBody:@"Hello there." isHTML:NO]; 
   [self presentModalViewController:controller animated:YES];
   [controller release];
}else{
  //your mail address is not configure
}
0
добавлено
OP запрашивает, как может быть обнаружена ошибка, связанная с почтовым композитором, а не как инициализируется и вызывается композитор.
добавлено автор Breakpoint, источник
Mobile Dev Jobs — вакансии и аналитика
Mobile Dev Jobs — вакансии и аналитика
6 187 участник(ов)

Публикуем вакансии и запросы на поиск работы по направлению iOS, Android, Xamarin и т.д. ВАЖНО: Правила публикации и правила канала: Ссылка – https://telegra.ph/Pravila-oformleniya-vakansij-i-rezyume-11-09-2

iOS Developers — русскоговорящее сообщество
iOS Developers — русскоговорящее сообщество
2 400 участник(ов)

Общаемся на темы, посвященным iOS-разработке, Swift, Objective-C, SDK, Rx, Cocoa и т.д.

EvilWirelessChat
EvilWirelessChat
226 участник(ов)

Группа русскоязычных специалистов по беспроводным сетям. Мат, шуточки за триста, два стула и прочий трешак разрешены исключительно в рамках обсуждения технических деталей. Троллинг разрешен. Прямые оскорбления запрещены.