У меня есть приложение, которое ничего не может загрузить, если оно не имеет доступа к Интернету. В моем приложении делегат я использую этот код:UIAlertView, когда у приложения нет интернета
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
//Check for internet
internetReachableFoo = [Reachability reachabilityWithHostname:@"www.google.com"];
// Internet is not reachable
internetReachableFoo.unreachableBlock = ^(Reachability*reach)
{
// Update the UI on the main thread
UIAlertView * alert = [[UIAlertView alloc] initWithTitle:@"Alert" message:@"This is an example alert!" delegate:self cancelButtonTitle:@"Hide" otherButtonTitles:nil];
alert.alertViewStyle = UIAlertViewStylePlainTextInput;
[alert show];
exit(0);
dispatch_async(dispatch_get_main_queue(), ^{
NSLog(@"Someone broke the internet :(");
});
};
[internetReachableFoo startNotifier];
return YES;
}
Проверка в Интернете делается из этого ответа Link и тогда я хочу, чтобы показать окно предупреждения, которая сообщает пользователю, что не будет работать без интернета, а затем закрыть приложение , В настоящее время у меня есть exit(0);
, который я знаю, что яблоко не примет поэтому в моем предупреждении. Мне нужна кнопка ok, чтобы закрыть приложение (если это позволяет яблоко). Моя проблема заключается в том, что я не уверен, как закрыть приложение, особенно с представлением UIAlert (я довольно новичок в iOS), и если это так, чтобы показать представление предупреждения, я хочу, чтобы приложение перестало загружать все остальное, когда вид предупреждения если он не имеет интернет, потому что приложение будет просто терпеть крах в любом случае (снова, если яблоко позволит вам остановить приложение от продолжения загрузки). Как я могу это сделать одобренным Apple?
С точки зрения использования пользователей, что вы пытаетесь сделать, я плохая идея. Сообщите пользователю, что нет Интернета и отключите функции приложения, но не закрывайте приложение. – JeffRegan
Я согласен с обоими ответами (SK9 и Michael Dautermann). Проверьте доступность где-нибудь, кроме делегата приложения (возможно, контроллер корневого представления) и не закрывайте приложение. Просто сообщите пользователю, что им нужно подключиться к Интернету, и не делайте никаких сетевых вызовов до тех пор, пока изменения Reachability не будут подключены. – JeffRegan
ОК получил. Спасибо! Ill просто переместите его, чтобы не выполнять какие-либо функции, пока он не подключен, и не закрывайте приложение. –