Ich sehe einen seltsamen Absturz nach dem Aufruf von "[MFMailComposeViewController canSendMail]".Warum stürzt MFMailComposeViewController ab?
Ich kann es nicht reproduzieren, es ist von iTunesConnect. Diese Methode (canSendMail) wird aus dem Hauptthread aufgerufen, und an diesem Punkt mache ich keine irgendetwas mit dem Adressbuch.
Jede Idee/Vorschlag wird SEHR VIEL geschätzt.
Vielen Dank im Voraus!
Hinweis: Dies ist in iOS 5.1.1 passiert.
Exception Type: SIGABRT
Exception Codes: #0 at 0x3583232c
Crashed Thread: 0
Thread 0 Crashed:
0 libsystem_kernel.dylib 0x3583232c __pthread_kill + 8
1 libsystem_c.dylib 0x347e729f abort + 95
2 AppSupport 0x3133cc57 abortAfterFailingIntegrityCheck + 39
3 AppSupport 0x3133ceef runIntegrityCheckAndAbort + 535
4 AppSupport 0x3133d025 checkResultWithStatement + 113
5 AppSupport 0x3133ea13 _connectAndCheckVersion + 1059
6 AppSupport 0x3133eab7 CPSqliteDatabaseConnectionForWriting + 43
7 AppSupport 0x3133eb8d CPSqliteDatabaseRegisterFunction + 21
8 AddressBook 0x337873f7 ABCDBContextCreateWithPathAndAddressBook + 215
9 AddressBook 0x3377b429 ABCCreateAddressBookWithDatabaseDirectoryAndForceInProcessMigrationInProcessLinkingAndResetSortKeys + 233
10 AddressBook 0x33789cd7 ABAddressBookCreate + 15
11 Message 0x31072453 MFThreadLocalAddressBook + 87
12 MessageUI 0x313a5471 +[MFMailComposeController initialize] + 9
13 libobjc.A.dylib 0x35edc973 _class_initialize + 239
14 libobjc.A.dylib 0x35edc87b prepareForMethodLookup + 143
15 libobjc.A.dylib 0x35edc747 lookUpMethod + 47
16 libobjc.A.dylib 0x35edc713 _class_lookupMethodAndLoadCache3 + 19
17 libobjc.A.dylib 0x35edbfcb objc_msgSend_uncached + 27
18 MessageUI 0x313a5455 +[MFMailComposeViewController canSendMail] + 33
=============
UPDATE:
Der Code-Schnipsel, die diesen Absturz verursacht, ist die folgende:
-(IBAction)helpButtonPressed
{
if([MFMailComposeViewController canSendMail])
{
NSString* mail = self.feedbackSettings[@"mail"];
NSString* title = self.feedbackSettings[@"title"];
MFMailComposeViewController* mailComposer = [[MFMailComposeViewController alloc] init];
mailComposer.mailComposeDelegate = self;
mailComposer.toRecipients = @[ mail ];
mailComposer.subject = title;
[self presentViewController:mailComposer animated:YES completion:nil];
[mailComposer release], mailComposer = nil;
}
else
{
[UIAlertView showAlertViewWithTitle:nil message:NSLocalizedString(@"Please, setup a mail account in your phone first.", nil) buttonTitle:NSLocalizedString(@"OK", nil)];
}
}
Es kann sein, dass Sie versuchen, 'MFMailComposeViewController' zu präsentieren, wenn' canSendEmail' '' NO' zurückgibt. – jamapag
Können Sie einen Code anfügen, in dem Sie 'MFMailComposeViewController' erstellen? – jamapag
Nein, ich versuche nicht, MFMailComposeViewController zu präsentieren, wenn canSendEmail NEIN ist. Ich werde die Frage aktualisieren, danke. –