2015-07-21 23 views
-4

如果无法从服务器下载数据库,我想退出应用程序。我尝试使用NSURLSession下载数据库。如果它不显示警报视图。如果无法下载数据库,请退出iOS应用程序

当用户点击提醒中的确定按钮时,我想退出应用程序。由于没有数据库,它会崩溃继续。为了避免崩溃,我想以编程方式退出应用程序。

我想实现类似android的完成()。

我有一个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

如果你这样做,苹果会拒绝你的应用程序从苹果评论过程,因为它是不允许即使你告诉他们只是退出应用程序。所以你想要的是**不可能。 – Popeye

+2

为什么你会杀了应用程序?而不是杀人,重试下载...不要继续下去,直到下载成功... –

回答

5

How do I programmatically quit my iOS application?

答:没有提供正常终止在iOS 应用程序API 。

在iOS中,用户按下主页按钮关闭应用程序。如果您的应用程序具有无法提供其 预期功能的条件,建议的方法是显示用户提醒 ,指出问题的性质以及用户可能采取的可能操作 - 启用WiFi,启用位置服务, 等允许用户终止在他们自己的 酌情权的应用程序。

警告:不要致电exit函数。呼叫exit的应用将 看起来对用户来说已经崩溃,而不是执行优雅的 终止并将动画回到主屏幕。

注意,使用exit(0)[[NSThread mainThread] exit]可能会导致您的应用程序在App商店提交被拒绝

More information

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 
    } 
} 
1

正如其他人所说,这是不可能的,不建议退出应用程序。

另外,如何提供一个模态视图控制器,它告诉用户发生了什么?

我见过优步做了一次,告诉我如果我不升级我将无法再使用这个应用程序。

+0

这可能已被作为一个评论,而不是一个答案。 – Popeye

2

IMO杀人只是因为下载失败的应用程序是最糟糕的主意...

我的建议是,如果下载失败,显示警告用户,要使用该应用程序,内容必须从服务器上下载。并显示,重试和关闭应用程序按钮。当用户进入重试时,尝试再次下载。因此,您可以在不杀死应用程序的情况下控制自己想要的内容。只有在下载完成时才会显示内容

让我知道您是否需要任何进一步的细节。

相关问题