sos の 作業メモ

プログラミングや英会話学習、マイルや旅行、日常生活など。最近はWebFormなASP.NETのお守りがお仕事です。

日々の生活にhappyをプラスする|ハピタス Gポイント

通信可否判定

Appleが提供している、Reachabilityのサンプルの中の、Reachabilityクラスを使うと簡単。 SystemConfiguration.frameworkの中のSCNetworkReachabilityRefのラッパーにあたるのだけど、 ARCに対応させるにはちょっとコツが必要。詳しくは、初めてのiOSプログラミング第2版のp178参照。

Reachability *reach = [Reachability reachabilityForInternetConnection];
NetworkStatus status = [reach currentReachabilityStatus];

特定のサーバーへの到達性の判定も可能だし、非同期での到達性の監視も可能な優れもののクラス。

到達性を同期で判定するだけでいいなら、SCNetworkReachabilityCreateWithAddress か、SCNetworkReachabilityCreateWithName を直接使う方が簡単かもしれない。 Nameの方は先に名前解決が走るので、一旦AddressでNetwork自体の到達性をみて、その後でNameで目的のHostへの到達性を判定した方がよさそう。