ตัวอย่างเช่น หากแอปของคุณดู SCNetworkReachability
สำหรับ kSCNetworkReachabilityFlagsIsWWAN
เพื่อตรวจสอบเมื่อ Wi-Fi พร้อมใช้งาน Wi-Fi อาจทำงานไม่ถูกต้องภายใต้ทางเลือกของเครือข่ายมือถือ
หากแอปใช้วิธีนี้แล้วพยายามเชื่อมต่อ โดยคิดว่าจะได้รับการเชื่อมต่อผ่าน Wi-Fi แอปอาจลงเอยด้วยการเชื่อมต่อผ่านเครือข่ายเซลลูลาร์โดยไม่ได้ตั้งใจ การขาด kSCNetworkReachabilityFlagsIsWWAN
ไม่ได้รับประกันว่าการเชื่อมต่อของคุณจะไม่ผ่านมือถือ หากรหัสของคุณต้องบังคับให้ไม่มีการเชื่อมต่อผ่านเซลลูลาร์ จะต้องระบุรหัสนั้นเมื่อส่งคำขอเครือข่าย
แทน, สำหรับ CFNetwork
โค้ดที่ใช้ CFSocketStream
, CFHTTPStream
หรือ API ที่คล้ายกัน ให้ตั้งค่า kCFStreamPropertyNoCellular
คุณสมบัติเป็นจริงบนวัตถุ CF ก่อนเชื่อมต่อ
สำหรับ NSURLRequests
, เรียก [ขอ setAllowsCellularAccess: เท็จ]
.
นอกเหนือจากการทำให้แน่ใจว่ารหัสของคุณจะไม่ถูกเชื่อมต่อผ่านระบบเซลลูลาร์เนื่องจากทางเลือกของเซลลูลาร์ การเรียกนี้ทำให้มั่นใจได้ว่าโค้ดของคุณจะไม่มีวันเชื่อมต่อ เชื่อมต่อผ่านเซลลูลาร์เนื่องจาก VPN หรือปัญหาการกำหนดเส้นทางที่ซับซ้อน (การเชื่อมต่อกับ IPv6 ผ่านเซลลูลาร์เพราะมีเพียง IPv4 เท่านั้นที่ใช้งานได้ผ่าน Wi-Fi เป็นต้น)
หากต้องการตรวจสอบว่าแอปทำงานอย่างถูกต้อง คุณควรทดสอบกับเครือข่าย Wi-Fi ที่ใช้งานไม่ได้ วิธีที่ง่ายที่สุดในการตั้งค่าเครือข่าย Wi-Fi ที่ใช้งานไม่ได้คือการตั้งค่าสถานีฐาน Apple AirPort หรืออื่นๆ จุดเชื่อมต่อ Wi-Fi เพื่อแจกที่อยู่ DHCP และปล่อยให้จุดเชื่อมต่อไม่เชื่อมต่อกับ อินเทอร์เน็ต. วิธีการทดสอบง่ายๆ อีกวิธีหนึ่งคือการถอดสายเคเบิลหรือสาย DSL ออกจากสายเคเบิลหรือโมเด็ม DLS ของคุณ