我正在尝试在顶级iPhone异常处理程序中显示UIAlertView.处理函数如下所示:
void applicationExceptionHandler(NSException *ex) {
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Error"
message:[ex reason]
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[alertView show];
}
Run Code Online (Sandbox Code Playgroud)
我在其他地方看到过类似的代码(例如,NSSetUncaughtExceptionHandler没有捕获iPhone上的所有错误).
如果我单步进入调试器,我可以看到异常处理程序被调用,我可以看到当前屏幕变暗,好像它将在它前面显示警报,但什么都没有出现.在调试器之外,应用程序立即退出并返回系统主屏幕.
如果我在applicationDidFinishLaunching中捕获错误并在返回之前显示警报,它确实有效.我假设警报视图永远不会有机会在异常处理程序中显示,因为应用程序正在终止(而不是坐在那里,如果我只是放弃applicationDidFinishLaunching而无所事事).有没有办法让这项工作?