¿Por qué molestarse con la class de Alcanzabilidad de manzanas y no solo tratar de hacer la connection real?

Apple proporciona una class llamada Reachability. Casi lo usé, pero luego encontré muchas personas que informaban problemas en SO. Por ejemplo, informará falsos positivos o mostrará la misma notificación de error varias veces haciendo que el usuario pulse varias veces una vista de alerta "sin Internet".

¿Por qué no puedo simplemente search datos en segundo plano y ver qué obtengo?

NSData *download = [NSData dataWithContentsOfURL:[NSURL URLWithString:urlStr]]; 

Comprobé: cuando no hay internet, la download será nula. Entonces puedo mostrar un UIAlertView y quejarme.

También algunos usuarios dicen que es estúpido simplemente verificar "connection a internet" porque Reachability solo dice si está conectado a Gateway. Gateway no puede tener internet. Mi enrutador WiFi lo hace todo el time. iPad tiene recepción WiFi pero no hay internet.

Otros dicen que es mejor probar una URL en particular y ver si el server está allí.

Entonces, ¿por qué molestarse con la class Reachability? ¿Por qué no probar la descarga real y si no ocurre nada supongamos que algo está mal?

¿Cómo determino si la connection de networking actualmente activa es Wi-Fi o la networking del operador?

La API SCNetworkReachability permite que una aplicación determine el estado de la configuration de networking actual de un sistema y la accesibilidad de un host de destino. Uno de los indicadores devueltos por la API, kSCNetworkReachabilityFlagsIsWWAN , le dirá si una connection de networking con el host de destino usa la networking de operador …

De networkinges y encoding de Internet How-To's

Una razón es que verificaría la accesibilidad de la carga y, si no hay internet, ni siquiera muestre botones para llegar a Internet. Esto le ahorraría tener que cargar toda la descarga antes de saber si está disponible.

En muchos casos tiene razón. Pero a veces solo quieres verificar mucho antes de que realmente descargues nada.

Además, si miras a tu alnetworkingedor en Github, hay muchas Clases de Reachability que hacen un mejor trabajo que el que Apple ha incluido.