强制申请终止iPhone

Sag*_*ari 5 objective-c ios

我正在开发一个完全基于Web数据的iPhone应用程序.

如果它没有连接到互联网,该应用程序是没有用的.

所以,我想在找不到连接时终止应用程序.

NSURL *tmpURl=[NSURL URLWithString:[NSString stringWithFormat:@"%@search.php",[iGolfAppDelegate getServerPath]]];
    NSMutableURLRequest *theRequest=[NSMutableURLRequest requestWithURL:tmpURl];
    con=[[NSURLConnection alloc] initWithRequest:theRequest delegate:self];
    if(con){
        myWebData=[[NSMutableData data] retain];    
    } else { 
        //Yes I will provide two buttons on alertview "retry" & "close", & when user
        //taps on "close" => application should terminate.
        // i will send alertview & when user taps on button close then
        // what to write for terminating application?
        // Ok Ok. Don't terminate. User will terminate.
        // user is owner of iPhone 
        // let him choose what to do
        // wait till wifi connects
    }
Run Code Online (Sandbox Code Playgroud)

问题是如何终止申请?

exit(0)只用于终止应用程序的选项,或是否有任何其他选项可用?

Nik*_*uhe 17

Apple对此话题绝对清楚:

没有为优雅地终止iPhone应用程序提供API.在iPhone OS下,用户按Home键关闭应用程序.如果您的应用程序具有无法提供其预期功能的条件,建议的方法是为用户显示警告,指示问题的性质以及用户可能采取的操作 - 打开WiFi,启用位置服务等.允许用户自行决定终止申请.

参见技术问答QA1561

  • 完全不同意.根本不需要退出按钮.但是从开发人员的角度来看肯定*IS*需要一个正确的退出/重启功能 - 重置数据库,测试出来,无效的未知状态(如果用户继续使用就防止数据损坏.)等我们只剩下强行彻底崩溃应用程序,这很糟糕. (2认同)

Ste*_*ker 10

您可能会考虑通知用户他们在没有活动网络连接的情况下无法使用您的应用程序.直接终止应用程序似乎是一种非常不友好的方式来做到这一点; 用户只会看到应用程序"消失".

我见过的每个表现良好的应用程序至少会在终止之前发出通知.

  • 非常这个.告诉用户没有连接的应用程序无法正常工作,让他们自己杀死它. (2认同)

Joe*_*tti 6

我建议你重新考虑3个原因

  1. 您的应用可能会崩溃.
  2. 用户可能会在您的应用启动时获得互联网连接.在这种情况下,"重试"将是最好的.
  3. 我认为Apple可能实际上不接受该应用程序,如果它这样做.如果Apple应用程序需要互联网连接,他们肯定不会做什么,他们会测试看看应用程序在没有连接的情况下会做什么.

如果(无论出于何种原因)你想要这样做,你可以使用.

exit(0);
Run Code Online (Sandbox Code Playgroud)

  • 在这种情况下,您应该有一个按钮:"重试".iPhone上的每个应用程序都有一个"关闭"按钮 - 硬件主页按钮 - 您无需再实现另一个应用程序. (2认同)

Chu*_*uck 5

你总是可以除以零.作为奖励,实施将反映出这是一个好主意.