当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];
}发布于 2014-08-07 15:29:11
我不确定NSSetUncaughtExceptionHandler是不是一个在屏幕上画东西的好地方。
设置顶级错误处理函数,您可以在该函数中在程序终止之前执行最后一分钟的日志记录。
大多数车祸记者都会小心地记录痕迹,尽量不“碰”其他任何东西。
如果你真的想画点什么(什么?)您可能应该先捕获一个特定的异常。只是不是任何未捕获的异常。
发布于 2014-08-11 15:50:16
关于NSSetUncaughtExceptionHandler,我认为Rivera是对的。也许你需要这样写:[path fill];
附言:很抱歉,我写在这里,评论被禁用,小名声…
发布于 2014-08-14 02:47:54
就像Rivera所说的,在这个阶段你不能拯救应用程序,但如果你真的需要在这里绘制一些东西,你可能会启动另一个进程(你必须设计它)来显示这个图像。
https://stackoverflow.com/questions/25125728
复制相似问题