相关疑难解决方法(0)

在iPhone顶级异常处理程序中显示警报

我正在尝试在顶级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而无所事事).有没有办法让这项工作?

iphone exception objective-c uialertview

9
推荐指数
2
解决办法
3594
查看次数

标签 统计

exception ×1

iphone ×1

objective-c ×1

uialertview ×1