Als uw app bijvoorbeeld kijkt SCNetwerkBereikbaarheid
voor de kSCNetwerkBereikbaarheidVlaggenIsWWAN
om te controleren wanneer Wi-Fi beschikbaar is, gedraagt het zich mogelijk niet correct onder mobiele fallback.
Als een app deze methode gebruikt en vervolgens probeert verbinding te maken, in de veronderstelling dat deze een verbinding via wifi krijgt, kan de app per ongeluk een verbinding maken via het mobiele netwerk. Het ontbreken van de kSCNetwerkBereikbaarheidVlaggenIsWWAN
is geen garantie dat uw verbinding niet via mobiel gaat. Als uw code moet afdwingen dat een verbinding niet via mobiel gaat, moet deze dat specificeren bij het maken van een netwerkverzoek.
Inplaats van CFNetwork
code met behulp van CFSocketStream
, CFHTTPStream
, of vergelijkbare API's, stel de kCFStreamPropertyNoCellular
eigenschap op true op het CF-object voordat u verbinding maakt.
Voor NSURLVerzoeken
, telefoongesprek [verzoek setAllowsCellularAccess: false]
.
Deze oproep zorgt er niet alleen voor dat uw code nooit via mobiel wordt verbonden vanwege mobiele fallback, maar zorgt ervoor dat uw code nooit wordt verbonden via mobiel vanwege de VPN of ingewikkelde routeringsproblemen (verbinden met IPv6 via mobiel omdat alleen IPv4 beschikbaar is via Wi-Fi, enzovoort.).
Om te controleren of uw app correct werkt, moet u testen met een kapot wifi-netwerk. De eenvoudigste manier om een kapot wifi-netwerk op te zetten, is door een Apple AirPort-basisstation of iets anders in te stellen Wi-Fi-toegangspunt om een DHCP-adres uit te delen en het toegangspunt los te laten van de internetten. Een andere eenvoudige manier om te testen is om de kabel- of DSL-lijn los te koppelen van uw kabel- of DLS-modem.