Comment vérifier une connexion Internet active sur iOS ou macOS?

Je voudrais vérifier pour voir si j'ai une connexion Internet sur iOS à l'aide de la Cocoa Touch les bibliothèques ou sur mac os à l'aide de la Cacao bibliothèques.

Je suis venu avec une façon de le faire à l'aide d'un NSURL. Je l'ai fait il me semble un peu peu fiable (parce que même Google pourrait un jour être en bas et en s'appuyant sur un troisième partie semble mal), et bien que j'ai pu vérifier pour voir une réponse de certains autres sites web si Google n'a pas répondu, il ne semble un gaspillage et une surcharge inutile à ma demande.

- (BOOL) connectedToInternet
{
    NSString *URLString = [NSString stringWithContentsOfURL:[NSURL URLWithString:@"http://www.google.com"]];
    return ( URLString != NULL ) ? YES : NO;
}

Est ce que j'ai fait mauvais (pour ne pas mentionner stringWithContentsOfURL est obsolète dans iOS 3.0 et macOS 10.4) et si oui, quelle est la meilleure façon d'accomplir cette?

Plutôt return (BOOL)URLString;, ou encore mieux, return !!URLString ou return URLString != nil
Je ne sais pas ce que votre cas d'utilisation, mais si vous le pouvez, il est préférable d'essayer de la demande et de gérer les erreurs comme un manque de connexion qui se posent. Si vous ne pouvez pas faire cela, alors il ya beaucoup de bons conseils ici dans ce cas.
Votre solution est intelligent, et je le préfère. Vous pouvez également utiliser NSString *URLString = [NSString stringWithContentsOfURL:[NSURL URLWithString:@"https://twitter.com/getibox"] encoding:NSUTF8StringEncoding error:nil]; Pour se débarrasser de l'ennuyeux avertissement.
essayez d'utiliser l'Accessibilité classe à partir du lien ci-dessous, il va travailler pour vous github.com/tonymillion/Reachability
Pour les personnes qui viennent de trouver cette réponse: stackoverflow.com/a/8813279

OriginalL'auteur Brock Woolf | 2009-07-05