在- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions方法中加上以下一句代码:
NSSetUncaughtExceptionHandler(&UncaughtExceptionHandler);
UncaughtExceptionHandler(NSException *exception)的实现如下:
void UncaughtExceptionHandler(NSException *exception) { NSArray *arr = [exception callStackSymbols]; NSString *reason = [exception reason]; NSString *name = [exception name]; NSString *urlStr = [NSString stringWithFormat:@"mailto://[email protected]?subject=bug报告&body=感谢您的配合!<br><br><br>错误详情:<br>%@<br><br>%@<br><br>%@", name, reason, [arr componentsJoinedByString:@"<br>"]]; NSURL *url = [NSURL URLWithString:[urlStr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]; [[UIApplication sharedApplication] openURL:url]; }
这样,当程序发生异常的时候,会自动打开邮件发送页面。