Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/98.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 点击NSSetUncaughtExceptionHandler时使用CoreGraphics在屏幕上绘制_Ios_Objective C_Exception_Core Graphics - Fatal编程技术网

Ios 点击NSSetUncaughtExceptionHandler时使用CoreGraphics在屏幕上绘制

Ios 点击NSSetUncaughtExceptionHandler时使用CoreGraphics在屏幕上绘制,ios,objective-c,exception,core-graphics,Ios,Objective C,Exception,Core Graphics,当调用NSSetUncaughtExceptionHandler时,我试图在屏幕上画一些简单的东西,但什么都没有发生。 是否有其他方法可以捕获异常并在屏幕上快速绘制某些内容 NSSetUncaughtExceptionHandler(&exceptionHandler); void exceptionHandler(NSException *exception) { UIBezierPath *path = [UIBezierPath bezierPath]; [pat

当调用
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];
}

我不确定
NSSetUncaughtExceptionHandler
是否是在屏幕上绘制内容的好地方

设置可在其中执行的顶级错误处理函数 程序终止前的最后一分钟日志记录

大多数撞车记者都会仔细地记录这一痕迹,尽量不“碰”任何东西


如果你真的想画一些东西(什么?),你应该首先捕捉一个特殊的异常。只是没有任何未捕获的异常。

我认为Rivera是正确的,关于
NSSetUncaughtExceptionHandler
。也许你需要写:
[path fill]


附言:很抱歉,我写在这里,评论被禁用,名声很小……

就像Rivera说的,在这个阶段你将无法拯救这个应用程序,但是如果你真的需要在这里画一些东西,你可能会启动另一个过程(你必须设计)仅显示此图像。

您确定执行正在进入处理程序吗?如果在主线程上发生异常,它是否有效?哦,你是否肯定
APP\u DELEGATE\u WINDOW.rootViewController.view.layer
不是nil?”…未捕获的异常处理程序总是导致程序退出…”因此在屏幕上添加形状似乎没有意义。你可以在这里读剩下的。也许可以将形状保存到文件系统上的映像中。是的,似乎总是导致退出。也许可以通过在自己的runloop tho中执行您正在尝试执行的操作来解决这个问题。我确信在我进行一些日志记录时,执行会进入处理程序,并且我确信“APP\u DELEGATE\u WINDOW.rootViewController.view.layer”不是零,因为我在应用程序的不同部分使用它。