Meine iPhone App wurde von TestFlight abgelehnt, weil das iPad abgestürzt ist. Der fehlerhafte Code versucht, einen Controller zum Senden einer E-Mail anzuzeigen. Ich habe den Code in ein kleines, einfaches Beispiel reduziert, die auf meinem iPhone 5c mit iOS 9.3.1 wie erwartet funktioniert aber stürzt mein iPad 2 mit iOS 9.3.1:presentViewController stürzt mit dem iPad ab, aber nicht mit dem iPhone
- (void)viewDidLoad {
[super viewDidLoad];
[self displayComposerSheet];
}
-(void)displayComposerSheet {
// Create e-mail interface
MFMailComposeViewController *picker = [[MFMailComposeViewController alloc] init];
picker.mailComposeDelegate = self;
[picker setSubject:@"iPad crash test"];
// Add recipients
NSArray *toRecipients = [NSArray arrayWithObject:@"[email protected]"];
[picker setToRecipients:toRecipients];
// Fill body
NSString *emailBody = @"A short test of iPad crashes";
[picker setMessageBody:emailBody isHTML:NO];
// Show interface - iPad crashes here but iPhone is ok
[self presentViewController:picker animated:YES completion:nil];
}
Die Fehlermeldung lautet:
*** Beenden App aufgrund der nicht abgefangenen Ausnahme 'NSInvalidArgumentException', Grund: 'Anwendung versucht, einen Nullmodalansicht-Controller auf Ziel zu präsentieren.'
Ich habe ein wenig Zeit damit verbracht, herauszufinden, aber nicht in der Lage, es auszuarbeiten. Irgendwelche Ideen oder Vorschläge würden sehr geschätzt werden!
Ist 'Picker'' nil'? Lesen Sie die Dokumentation für 'MFMailComposeViewController'. Sie müssen überprüfen, ob das Gerät E-Mails senden kann, bevor Sie versuchen, diese Klasse zu verwenden. – rmaddy