我正在开发一个完全基于网络数据的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
}
问题是如何终止申请?
exit(0)
只是终止申请的选项还是有其他可用选项?
答案 0 :(得分:17)
Apple非常清楚这个话题:
没有提供API 优雅地终止iPhone 应用。在iPhone OS下, 用户按Home键关闭 应用。你的申请应该 有条件,它不能 提供其预期的功能, 推荐的方法是显示一个 警告指示该用户的用户 问题的本质和可能性 用户可以采取的行动 - 转弯 在WiFi,启用位置服务, 等。允许用户终止 申请由他们自行决定。
答案 1 :(得分:10)
如果没有活动的网络连接,您可能会考虑通知用户他们无法使用您的应用程序。直接终止应用程序似乎是一种非常不友好的方式来做到这一点;用户只会看到应用程序“消失”。
我见过的每个表现良好的应用程序至少会在终止之前发出通知。
答案 2 :(得分:6)
我建议你重新考虑3个原因
如果(无论出于何种原因)你想要这样做,你可以使用。
exit(0);
答案 3 :(得分:5)
你总是可以除以零。作为奖励,实施将反映出这是一个好主意。
答案 4 :(得分:3)
希望这有用 [[NSThread mainThread]退出];
答案 5 :(得分:2)
如果你终止它会看起来你的应用程序崩溃了!
最好发布一条消息,说没有互联网连接,并给他们一个重试选项(如果他们可以连接互联网),或者选择自己选择
答案 6 :(得分:2)
你不应该这样做。请查看the Human Interface Guidelines中的“停止”,因为您可能无法提交执行此操作的应用程序,或者至少提供奇怪的用户体验。
该链接还显示了处理此问题的正确方法,如iTunes Music Store应用程序。
答案 7 :(得分:1)
如果您无法上网,您的应用将被拒绝。
对不起。
-t