「[MFMailComposeViewController canSendMail]」を呼び出した後、私は奇妙なクラッシュを見ています。MFMailComposeViewControllerがクラッシュするのはなぜですか?
私はそれを再現できません、それはiTunesConnectからです。そのメソッド(canSendMail)がメインスレッドから呼び出されています。その時点で、私は何かをアドレス帳でしていません。
どのようなアイデアや提案も非常に高く評価されます。
ありがとうございます!
注:これはiOS 5.1.1で発生しました。
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:
-(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)];
}
}
'canSendEmail'が' NO'を返すときに 'MFMailComposeViewController'を表示しようとするかもしれません。 – jamapag
'MFMailComposeViewController'を作成する場所にコードを添付できますか? – jamapag
いいえ、canSendEmailがNOの場合はMFMailComposeViewControllerを表示しようとしていません。私は質問を更新します、ありがとう。 –