Например, ако приложението ви гледа SCNetwork Достижимост
за kSCNetworkReachabilityFlagsIsWWAN
за да се следи, когато Wi-Fi е наличен, той може да не се държи правилно при резервно използване на клетката.
Ако дадено приложение използва този метод и след това се опита да се свърже, мислейки, че ще получи връзка през Wi-Fi, приложението може по невнимание да завърши с връзка през клетъчната мрежа. Липсата на kSCNetworkReachabilityFlagsIsWWAN
не е гаранция, че връзката ви няма да премине през клетъчна връзка. Ако вашият код трябва да наложи, че връзката не преминава през клетъчна, той трябва да го уточни при отправяне на заявка за работа в мрежа.
Вместо това, за CFNetwork
код с помощта CFSocketStream
, CFHTTPS поток
или подобни API, задайте kCFStreamPropertyNoCellular
свойство на true на CF обекта преди свързване.
За NSURLRequests
, повикване [заявка setAllowsCellularAccess: false]
.
В допълнение към това да гарантира, че кодът ви никога няма да бъде свързан през клетка поради отстъпка на клетката, това обаждане гарантира, че кодът ви никога няма да бъде свързан през клетка поради VPN или сложни проблеми с маршрутизирането (свързване към IPv6 през клетка, защото само IPv4 е наличен през Wi-Fi, и др.).
За да проверите дали приложението ви се държи правилно, трябва да тествате срещу счупена Wi-Fi мрежа. Най-лесният начин да настроите счупена Wi-Fi мрежа е да настроите базова станция Apple AirPort или друга Wi-Fi точка за достъп, за да раздаде DHCP адрес и да остави точката за достъп изключена от Интернет. Друг прост начин за тестване е да изключите кабела или DSL линията от вашия кабелен или DLS модем.