2015-07-21 26 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殺人只是因爲下載失敗的應用程序是最糟糕的主意...

我的建議是,如果下載失敗,顯示警告用戶,要使用該應用程序,內容必須從服務器上下載。並顯示,重試和關閉應用程序按鈕。當用戶進入重試時,嘗試再次下載。因此,您可以在不殺死應用程序的情況下控制自己想要的內容。只有在下載完成時纔會顯示內容

讓我知道您是否需要任何進一步的細節。

相關問題