当NSSetUncaughtExceptionHandler
被调用时,我试图在屏幕上绘制一些简单的东西但是没有发生。
有没有其他方法可以捕获异常并快速在屏幕上绘制内容?
NSSetUncaughtExceptionHandler(&exceptionHandler);
void exceptionHandler(NSException *exception)
{
UIBezierPath *path = [UIBezierPath bezierPath];
[path moveToPoint:CGPointMake(10.0, 10.0)];
[path moveToPoint:CGPointMake(10.0, 10.0)];
[path addLineToPoint:CGPointMake(10.0, 450.0)];
[path addLineToPoint:CGPointMake(310.0, 450.0)];
[path addLineToPoint:CGPointMake(310.0, 10.0)];
[path addLineToPoint:CGPointMake(10.0, 10.0)];
CAShapeLayer *shapeLayer = [CAShapeLayer layer];
shapeLayer.path = [path CGPath];
shapeLayer.strokeColor = [[UIColor blueColor] CGColor];
shapeLayer.lineWidth = 3.0;
shapeLayer.fillColor = [[UIColor clearColor] CGColor];
[APP_DELEGATE_WINDOW.rootViewController.view.layer addSublayer:shapeLayer];
[APP_DELEGATE_WINDOW makeKeyAndVisible];
}
答案 0 :(得分:1)
我不确定NSSetUncaughtExceptionHandler
是否是在屏幕上绘制内容的好地方。
设置您可以执行的顶级错误处理功能 程序终止前的最后一分钟记录。
大多数崩溃记者都仔细记录了痕迹,尽量不要“触摸”任何东西。
如果你真的想画一些东西(什么?)你应该首先捕获一个特殊的例外。只是没有任何未被捕获的例外。
答案 1 :(得分:1)
我认为 Rivera 是正确的,关于NSSetUncaughtExceptionHandler
。也许你需要写:[path fill];
答案 2 :(得分:1)
就像Rivera所说,你在这个阶段你无法拯救应用程序,但是如果你真的需要在这里画一些东西,你可能会启动另一个进程(你必须设计)才能显示这个形象。