Na przykład, jeśli Twoja aplikacja ogląda SCNetworkDostępność
dla kSCNetworkReachabilityFlagsIsWWAN
do monitorowania, gdy Wi-Fi jest dostępne, może nie działać poprawnie w przypadku awaryjnej sieci komórkowej.
Jeśli aplikacja użyje tej metody, a następnie spróbuje się połączyć, myśląc, że uzyska połączenie przez Wi-Fi, aplikacja może przypadkowo nawiązać połączenie przez sieć komórkową. Brak kSCNetworkReachabilityFlagsIsWWAN
nie gwarantuje, że Twoje połączenie nie przejdzie przez sieć komórkową. Jeśli twój kod musi wymusić, aby połączenie nie przechodziło przez sieć komórkową, musi to określić podczas wysyłania żądania sieciowego.
Zamiast tego Sieć CF
kod za pomocą CFSocketStream
, Strumień CFHTTP
lub podobne interfejsy API, ustaw kCFStreamPropertyNoCellular
właściwość true na obiekcie CF przed połączeniem.
Do Żądania NSURL
, połączenie [żądanie setAllowsCellularAccess: false]
.
Oprócz upewnienia się, że Twój kod nigdy nie zostanie połączony przez sieć komórkową z powodu awaryjnego połączenia komórkowego, to wywołanie zapewnia, że Twój kod nigdy nie zostanie połączenie przez sieć komórkową z powodu VPN lub zawiłych problemów z routingiem (łączenie się z IPv6 przez sieć komórkową, ponieważ tylko IPv4 jest dostępne przez Wi-Fi, itp.).
Aby sprawdzić, czy Twoja aplikacja działa prawidłowo, przetestuj z uszkodzoną siecią Wi-Fi. Najłatwiejszym sposobem skonfigurowania uszkodzonej sieci Wi-Fi jest skonfigurowanie stacji bazowej Apple AirPort lub innej Punkt dostępowy Wi-Fi, aby przekazać adres DHCP i pozostawić punkt dostępowy odłączony od Internet. Innym prostym sposobem testowania jest odłączenie kabla lub linii DSL od modemu kablowego lub DLS.