gpt4 book ai didi

ios - iOS 应用程序中的 fatal error 处理程序

转载 作者:行者123 更新时间:2023-12-01 16:48:27 25 4
gpt4 key购买 nike

当出现严重错误以至于我的应用程序无法继续并需要退出时,我想向用户弹出一个警告框,然后在他们点击 OK 按钮时关闭应用程序。听起来很简单,对吧?

但问题是:我的 fatal error 处理程序被第 3 方库调用(我没有他们的源代码)。我在初始化时给他们一个指向我的 fatal error 处理程序的指针,当他们遇到 fatal error 时,他们只需调用该例程并期望它永远不会返回。如果它返回,第 3 方库将假定我已经处理了错误,并且它将继续运行(可能会损坏数据,因为现在处于不一致的状态)。我可以在我的错误处理程序结束时退出应用程序(这是他们所期望的),但我希望能够首先向用户显示一条消息,告诉他们问题出在哪里。

不幸的是,如果我这样做:

-(void)fatalErrorHandler:(NSString *)msg
{
// Log the error and shut down all the things that need
// to be shut down before we exit
// ...

// Show an alert to the user to tell them what went wrong
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Error" message:msg delegate:self cancelButtonTitle:@"Close" otherButtonTitles:nil];
[alert show];
}


-(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
exit(-1);
}

fatalErrorHandler 在 [alert show] 之后立即返回,它告诉 3rd 方库我已经处理了错误,它将继续运行,就好像什么都没发生一样。这不好。

我不需要从 fatalErrorHandler 返回。曾经。但由于我在主线程上,所以 UIAlertView 在 fatalErrorHandler 返回之前不会出现。一个第 22 个问题。

关于如何在不从 fatal error 处理程序返回的情况下向用户显示警报的任何想法?

最佳答案

我不知道这是否可行,但是启动 while 怎么样?使用 sleep 循环在它的 body 里,比方说,每个周期 1 秒?当 Bool 时,while 将退出。变量将被设置为 YES ,可能来自 alertViewDelegate .

关于ios - iOS 应用程序中的 fatal error 处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18135878/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com