如果无法下载数据库,请退出iOS应用程序

时间:2015-07-21 11:15:58

标签: ios objective-c ios8

如果无法从服务器下载数据库,我想退出该应用程序。我尝试使用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];

但没有帮助。 我怎么能这样做?

4 个答案:

答案 0 :(得分:5)

How do I programmatically quit my iOS application?

  

答:没有提供API来优雅地终止iOS   应用

     

在iOS中,用户按Home键关闭应用程序。应该   您的申请具有无法提供的条件   预期的功能,推荐的方法是显示警报   指示问题性质和可能操作的用户   用户可以 - 打开WiFi,启用位置服务,   等允许用户自行终止应用程序   决定。

     

警告:请勿调用exit功能。致电exit的申请将会   用户似乎已经崩溃,而不是表现优雅   终止并动画回到主屏幕。

请注意,使用exit(0)[[NSThread mainThread] exit]可能会导致您的应用在App-store提交中被拒绝

More information

答案 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
  }
}