[解決済み] iOSでインターネット接続を検出する最も簡単な方法とは?
質問
この質問は他の多くの質問と重複しているように見えると思いますが、ここでは単純なケースをうまく説明できていないように感じます。AndroidとBlackBerryのバックグラウンドを持つ私は
HTTPUrlConnection
は、接続できない場合、即座に失敗します。これは全くまともな動作のように思えるので、意外に思ったのですが
NSURLConnection
はそれをエミュレートしていない。
アップル(とそれを拡張した他社)が提供するのは理解しています。
Reachability
クラスは、ネットワークの状態を決定するのを支援するために使用されます。これを最初に見たときは嬉しかったし、次のようなものが出てくることを十分期待していました。
bool isNetworkAvailable()
しかし、驚いたことに、通知登録やコールバックが必要な複雑なシステムで、不必要と思われる細部がたくさんありました。もっといい方法があるはずだ。
私のアプリはすでに、接続不能を含む接続障害を優雅に処理しています。ユーザーには障害が発生したことが通知され、アプリは次に進みます。
したがって、私の要求は単純である。すべてのHTTPリクエストの前に呼び出すことができる単一の同期関数で、実際にリクエストを送信するかどうかを判断します。理想的には、セットアップが不要で、ブール値を返すだけでよいのです。
これは本当にiOSではできないのでしょうか?
解決方法は?
もう少し調べて、より最新の解決策で私の答えを更新しています。すでにご覧になったかどうかわかりませんが、Appleから提供された素敵なサンプルコードがあります。
サンプルコードのダウンロード こちら
Reachability.h と Reachability.m をプロジェクトにインクルードしてください。ReachabilityAppDelegate.m を見て、ホストの到達性、WiFiによる到達性、WWANによる到達性などを判断する例を見てください。ネットワークの到達性を簡単に調べるには、次のようにします。
Reachability *networkReachability = [Reachability reachabilityForInternetConnection];
NetworkStatus networkStatus = [networkReachability currentReachabilityStatus];
if (networkStatus == NotReachable) {
NSLog(@"There IS NO internet connection");
} else {
NSLog(@"There IS internet connection");
}
@BenjaminPiette のものです。SystemConfiguration.framework をプロジェクトに追加することを忘れないでください。
関連
-
[解決済み] デバイスがiOSであるかどうかを検出する
-
[解決済み] iOSまたはmacOSで、インターネット接続が有効かどうかを確認するにはどうすればよいですか?
-
[解決済み] iOSのステータスバーの文字色を変更する方法
-
[解決済み] iOSのバージョンを確認する方法を教えてください。
-
[解決済み] ファイルはユニバーサル(3スライス)ですが、iOSの静的ライブラリのための(n)ARMv7-sスライスエラーが含まれていない、どうにかして回避するには?
-
[解決済み] iPhoneでナビゲーションバーを1ページ目だけ非表示にする
-
[解決済み】iOSアプリの名前を変更する方法は?
-
[解決済み】App Transport Securityポリシーが安全な接続の使用を要求するため、リソースをロードできませんでした。
-
[解決済み】インターネット接続がオフラインになったことを検出しますか?
-
[解決済み] Android端末がインターネットに接続されているかどうかを検出する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
IOSラーニングノート「このクラスはxxxのキーバリューコーディングに対応していません」問題解決
-
[解決済み] iOSまたはmacOSで、インターネット接続が有効かどうかを確認するにはどうすればよいですか?
-
[解決済み] カスタムオブジェクトを含むNSMutableArrayをソートするにはどうすればよいですか?
-
[解決済み] performSelectorのセレクタが不明なため、リークが発生する可能性があります。
-
[解決済み] SwiftでStringを配列に分割する?
-
[解決済み] Xcodeにおけるバージョンとビルドの比較
-
[解決済み] iOS7でスタイルUITableViewStyleGroupedを持つUITableViewの上部に余分なパディングがあるのはなぜですか?
-
[解決済み] UITextViewのサイズをコンテンツに合わせるには?
-
[解決済み] Swift 3でディスパッチキューを作成する方法
-
[解決済み] セキュリティで保護されたWebサービスにもアクセスするiOSアプリで、Facebook認証を行うためのデザイン