使用MFMailComposeViewController打开presentModalViewController时崩溃

时间:2013-07-16 00:58:51

标签: ios objective-c email crash modal-dialog

一位用户报告我的应用程序在点击电子邮件按钮后立即崩溃。但是我无法在同一规格的设备上重现问题。

附加崩溃日志。我在reportVC.m中调用[self presentModalViewController:controller animated:YES];。控制器是MFMailComposeViewController的一个实例。

Incident Identifier: 4A06DE9B-178C-43C2-AE23-D8C7EEED7831
CrashReporter Key:   8b802dcda2f9dfd70003b0bedceac04ef79730f0
Hardware Model:      iPad3,6
Process:         ATracker [5610]
Path:            /var/mobile/Applications/ACABBAE7-C701-48AD-9DAC-9B4C0ABD3CFF/ATracker.app/ATracker
Identifier:      ATracker
Version:         ??? (???)
Code Type:       ARM (Native)
Parent Process:  launchd [1]

Date/Time:       2013-07-15 18:42:30.776 +0100
OS Version:      iOS 6.1.3 (10B329)
Report Version:  104

Exception Type:  EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Crashed Thread:  0

Last Exception Backtrace:
0   CoreFoundation                  0x3286c3e2 __exceptionPreprocess + 158
1   libobjc.A.dylib                 0x3a70695e objc_exception_throw + 26
2   UIKit                           0x34767118 -[UIViewController presentViewController:withTransition:completion:] + 3764
3   UIKit                           0x34888d9e -[UIViewController presentModalViewController:animated:] + 26
4   ATracker                        0x0007fac2 -[ReportVC sendEmail:] (ReportVC.m:1936)
5   UIKit                           0x34766082 -[UIApplication sendAction:to:from:forEvent:] + 66
6   UIKit                           0x34766036 -[UIApplication sendAction:toTarget:fromSender:forEvent:] + 26
7   UIKit                           0x34766010 -[UIControl sendAction:to:forEvent:] + 40
8   UIKit                           0x347658c6 -[UIControl(Internal) _sendActionsForEvents:withEvent:] + 498
9   UIKit                           0x34765db4 -[UIControl touchesEnded:withEvent:] + 484
10  UIKit                           0x3468e5f4 -[UIWindow _sendTouchesForEvent:] + 520
11  UIKit                           0x3467b8dc -[UIApplication sendEvent:] + 376
12  UIKit                           0x3467b1ea _UIApplicationHandleEvent + 6194
13  GraphicsServices                0x3636f5f2 _PurpleEventCallback + 586
14  GraphicsServices                0x3636f222 PurpleEventCallback + 30
15  CoreFoundation                  0x328413e2 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 30
16  CoreFoundation                  0x32841386 __CFRunLoopDoSource1 + 134
17  CoreFoundation                  0x3284020a __CFRunLoopRun + 1378
18  CoreFoundation                  0x327b3238 CFRunLoopRunSpecific + 352
19  CoreFoundation                  0x327b30c4 CFRunLoopRunInMode + 100
20  GraphicsServices                0x3636e336 GSEventRunModal + 70
21  UIKit                           0x346cf2b4 UIApplicationMain + 1116
22  ATracker                        0x00044fe6 main (main.m:16)
23  ATracker                        0x00044f9c start + 36

感谢任何想法或提示!

1 个答案:

答案 0 :(得分:8)

应检测设备canSendMail

[MFMailComposeViewController canSendMail]
如果设备上没有邮件帐户,则

返回false。

@see https://stackoverflow.com/a/3671759/946434