4

AppleはReachabilityと呼ばれるクラスを提供しています。私はほとんどそれを使用しましたが、その後、SOに関する問題を報告する多くの人々を見つけました。たとえば、誤検知を報告したり、同じエラー通知を複数回表示したりして、ユーザーが「インターネットなし」のアラートビューを複数回タップするようにします。

バックグラウンドでデータをフェッチして、何が得られるかを確認できないのはなぜですか?

NSData *download = [NSData dataWithContentsOfURL:[NSURL URLWithString:urlStr]];

私はチェックしました:インターネットがないとき、downloadただゼロになるでしょう。次に、UIAlertViewを表示して文句を言うことができます。

また、一部のユーザーは、到達可能性はゲートウェイに接続されているかどうかしか判断できないため、「インターネット接続」をチェックするだけでは愚かだと言います。ゲートウェイはインターネットを持つことができません。私のWiFiルーターはこれを常に行っています。iPadにはWiFi受信がありますが、インターネットはありません。

特定のURLをテストして、サーバーがそこにあるかどうかを確認する方がよいと言う人もいます。

では、なぜReachabilityクラスを気にするのでしょうか。実際のダウンロードを試してみて、何も起こらない場合は何かが間違っていると思いますか?

4

2 に答える 2

2

現在アクティブなネットワーク接続がWi-Fiであるか、通信事業者のネットワークであるかを判断するにはどうすればよいですか?

SCNetworkReachabilityAPIを使用すると、アプリケーションはシステムの現在のネットワーク構成のステータスとターゲットホストの到達可能性を判断できます。APIによって返されるフラグの1つである、はkSCNetworkReachabilityFlagsIsWWAN、ターゲットホストへのネットワーク接続がキャリアネットワークを使用しているかどうかを示します。

ネットワーキングとインターネットコーディングのハウツーから

于 2012-05-29T14:45:55.513 に答える
1

理由の1つは、ロード時に到達可能性を確認し、インターネットがない場合は、インターネットにアクセスするためのボタンさえ表示しないことです。これにより、ダウンロードが利用可能かどうかを知る前に、ダウンロード全体をロードする必要がなくなります。

多くの場合、あなたは正しいです。ただし、実際に何かをダウンロードするずっと前に確認したい場合があります。

また、Githubを見回すと、Appleに含まれているものよりも優れた仕事をする到達可能性クラスがたくさんあります。

于 2012-05-29T14:41:27.023 に答える