Wifi がアクティブな接続であることを到達可能性が検出しないという問題があります。プロジェクトに標準の到達可能性クラスをインポートしました。実行するアクションで、実際に実行するアクションを決定するために Wifi が利用可能かどうかを検出します。
Reachability *reachability = [Reachability reachabilityWithHostName:@"www.google.com"];
NetworkStatus status = [reachability currentReachabilityStatus];
NSLog(@"%i", status);
if (status == ReachableViaWiFi) {
//do wifi action
}
else {
//do non wifi action
}
何があっても、常に else アクションを実行します。ステータスのログは「2」を返します。何が起こっているのでしょうか?
更新: 多くのテストを行った結果、何らかの理由で、このアプリで WWAN と WIFI が逆になっていることがわかりました。実際のデバイスで WiFi をオフにして実行すると、接続ステータスが WIFI として表示され、WIFI ネットワークに接続されている場合は接続ステータスが WWAN として表示されます。