Почему MFMailComposeViewController падает на iOS 8.3?
Недавно я отправил приложение на проверку, которое вылетело при ссылке на электронную почту. Я пробовал это несколько раз на нескольких устройствах и не смог воссоздать его, но у меня нет iPad Air 2. Однако, похоже, что это может быть связано с отсутствием проверки для[MFMailComposeViewController canSendMail]
Хотя я не уверен, что это приведет к сбою. Кто-нибудь может дать некоторое представление о том, почему он разбился? Спасибо!
Во время проверки ваше приложение упало на iPad Air 2 под iOS 8.3, когда мы: 1. Нажмите кнопку «Предоставить отзыв»
Вот журнал ошибок:
Exception Type: EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Triggered by Thread: 0
Last Exception Backtrace:
(0x1839bc2d8 0x1950dc0e4 0x18871ea98 0x188720934 0x1884ea158 0x1000bc128 0x188431404 0x18841a4e0 0x188430da0 0x188430a2c 0x188429f68 0x1883fd18c 0x18869e324 0x1883fb6a0 0x183974240 0x1839734e4 0x183971594 0x18389d2d4 0x18cf8b6fc 0x188462fac 0x1000bc6f0 0x19575aa08)
Thread 0 name: Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0 libsystem_kernel.dylib 0x0000000195873270 0x195858000 + 111216
1 libsystem_pthread.dylib 0x000000019591116c 0x19590c000 + 20844
2 libsystem_c.dylib 0x00000001957eab14 0x195788000 + 404244
3 libc++abi.dylib 0x00000001948a9414 0x1948a8000 + 5140
4 libc++abi.dylib 0x00000001948c8b88 0x1948a8000 + 134024
5 libobjc.A.dylib 0x00000001950dc3bc 0x1950d4000 + 33724
6 libc++abi.dylib 0x00000001948c5bb0 0x1948a8000 + 121776
7 libc++abi.dylib 0x00000001948c5738 0x1948a8000 + 120632
8 libobjc.A.dylib 0x00000001950dc290 0x1950d4000 + 33424
9 CoreFoundation 0x000000018389d380 0x183894000 + 37760
10 GraphicsServices 0x000000018cf8b6f8 0x18cf80000 + 46840
11 UIKit 0x0000000188462fa8 0x1883ec000 + 487336
12 b2bGatewayWebview 0x00000001000bc6ec 0x100098000 + 149228
13 libdyld.dylib 0x000000019575aa04 0x195758000 + 10756
Код:
- (IBAction)touchRequestEnhancement:(id)sender {
// Email Subject
NSString *emailTitle = @"iOS App Feedback";
// Email Content
NSString *messageBody = @"Enter message here";
// To address
NSArray *toRecipents = [NSArray arrayWithObject:@"[email protected]"];
MFMailComposeViewController *mc = [[MFMailComposeViewController alloc] init];
mc.mailComposeDelegate = self;
[mc setSubject:emailTitle];
[mc setMessageBody:messageBody isHTML:NO];
[mc setToRecipients:toRecipents];
// Present mail view controller on screen
[self presentViewController:mc animated:YES completion:NULL];
}
- (void) mailComposeController:(MFMailComposeViewController *)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError *)error
{
switch (result)
{
case MFMailComposeResultCancelled:
NSLog(@"Mail cancelled");
break;
case MFMailComposeResultSaved:
NSLog(@"Mail saved");
break;
case MFMailComposeResultSent:
NSLog(@"Mail sent");
break;
case MFMailComposeResultFailed:
NSLog(@"Mail sent failure: %@", [error localizedDescription]);
break;
default:
break;
}
// Close the Mail Interface
[self dismissViewControllerAnimated:YES completion:NULL];
}