我需要保护我的代码免受可能的错误。如果它们出现那么没有必要进一步运行应用程序,所以我需要向用户提供一些消息,然后退出应用程序。所以,我正在检查条件,然后提醒:
if (someError){
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Error" message:@"No database file exist. App will close now." delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
[alert show];
[alert release];
}
在委托方法中,我正在使用NSAssert关闭应用程序:
-(void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex {
if (buttonIndex == 0) {
NSAssert(0, @"closing");
}
}
另外,我在头文件中包含了委托协议。然而,该应用程序只是带来警报,但按下确定它只是冻结,我收到一些消息“CoreAnimation:忽略异常:关闭”。我缺少什么或退出的其他选项?
答案 0 :(得分:2)
你不应该这样做,这是违反Apple HIG(人机接口指南):
iPhone应用程序永远不应该以编程方式退出,因为这样做会让用户崩溃。
最好向用户提供有关发生的错误的某种反馈,并提供重新启动流程的方法,而无需重新启动应用程序。但是,如果你真的真的想要,你可以使用
exit(0);