如果无法从服务器下载数据库,我想退出该应用程序。我尝试使用NSURLSession
下载数据库。如果它没有显示警报视图。
当用户点击警报中的确定按钮时,我想退出该应用程序。由于没有数据库,它将崩溃以继续。为了避免崩溃,我想以编程方式退出应用程序。
我想实现像android' finish()。
我有一个util.h和util.m,它可以完成所有下载显示警报框的工作。它扩展了NSObject。它就像一个实用程序而不是一个控制器。
Util.h
#import <Foundation/Foundation.h>
@interface Util : NSObject {
NSURLSession *session;
//NSDictionary *plistDictionary;
NSURLSessionTask *task1;
NSURLSessionTask *task2;
NSURLSessionTask *task3;
UIAlertView *alertViewSpin;
NSMutableData *receivedData;
}
我在其中一篇SO帖子中看到过..
[self dismissViewControllerAnimated:YES completion:nil];
[self.navigationController popViewControllerAnimated: YES];
但没有帮助。 我怎么能这样做?
答案 0 :(得分:5)
How do I programmatically quit my iOS application?
答:没有提供API来优雅地终止iOS 应用
在iOS中,用户按Home键关闭应用程序。应该 您的申请具有无法提供的条件 预期的功能,推荐的方法是显示警报 指示问题性质和可能操作的用户 用户可以 - 打开WiFi,启用位置服务, 等允许用户自行终止应用程序 决定。
警告:请勿调用
exit
功能。致电exit
的申请将会 用户似乎已经崩溃,而不是表现优雅 终止并动画回到主屏幕。
请注意,使用exit(0)
或[[NSThread mainThread] exit]
可能会导致您的应用在App-store提交中被拒绝
答案 1 :(得分:2)
IMO ,仅因为下载失败而杀死应用程序是最糟糕的想法......
我建议如果下载失败,向用户显示要使用该应用程序的警报,必须从服务器下载内容。并显示,重试和关闭应用程序按钮。当用户进行重试时,请尝试再次下载。所以这样你可以控制你想要的东西,而不会杀死应用程序。只有下载完成后,您才会显示内容
如果您需要任何进一步的详细信息,请与我们联系。
答案 2 :(得分:1)
正如其他人所说,这是不可能的,也不建议退出该应用程序。
或者,如何呈现模态视图控制器,告诉用户发生了什么?
我见过Uber曾经做过一次,告诉我如果不升级我就再也无法使用这个应用了。
答案 3 :(得分:0)
在这篇文章中已经回答: - Proper way to exit iPhone application?
请在使用前阅读本指南:
永远不要以编程方式退出iOS应用。人们倾向于解释这一点 作为一个崩溃。如果某些内容阻止您的应用运行 打算,你需要告诉用户有关情况并解释一下 他们可以做到这一点。 APPLE Guideline
对于您的情况,请将风险用于: -
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
if (buttonIndex != 0) // 0 == the cancel button
{
exit(0); // Close the app
}
}