codice di esempio raggiungibilità
-
20-09-2019 - |
Domanda
Sto usando raggiungibilità codice di esempio dal sito di Apple. Ho aggiunto i file Reachability.h e Reachability.m al mio progetto, anche io ho aggiunto SystemConfiguration.framework. Aggiunto #import "Reachability.h" per il mio file .m View Controller e dichiarato variabile raggiungibilità a mio controller di vista .h file. Tutto viene compilato senza errori fino a quando ho iniziare a utilizzare le istanze di raggiungibilità.
vengo ReachableViaWiFiNetwork e ReachableViaCarrierDataNetwork non dichiarato di errore.
Perché accade questo?
reachability = [Reachability reachabilityForInternetConnection];
NetworkStatus internetStatus = [reachability currentReachabilityStatus];
if ((internetStatus != ReachableViaWiFiNetwork) && (internetStatus != ReachableViaCarrierDataNetwork))
{
}
Soluzione
Reachability.h enumera tre tipi:. NotReachable, ReachableViaWiFi e ReachableViaWWAN
Questi sono i valori che si desidera controllare contro, non ReachableViaWiFiNetwork o ReachableViaCarrierDataNetwork.
Se il compilatore è dire che i valori sono in nero, si dovrebbe chiedere se stessi dove hai preso questi valori da? Rintracciare dove si crede che dovrebbe essere (il prefisso Raggiungibile è un indizio) e poi trovare il tuo errore.
Ci sono voluti letteralmente 30 secondi per rintracciare questo errore verso il basso. Potrai risparmiare una grande quantità di tempo, facendoti domande ovvie e ascoltare i messaggi del compilatore.
Sarebbe anche più pulito e più efficiente per controllare,
if (internetStatus == NotReachable) {}
Anche io non avrei creare una variabile di istanza e salvare la raggiungibilità in quanto ciò potrebbe cambiare (in quanto si tratta di un mobili del dispositivo). E 'più sicuro per verificare la presenza di una connessione ogni volta che avete bisogno di uno. Come tale sarei propenso a scrivere,
if ([[Reachability reachabilityForInternetConnection] currentReachabilityStatus] == NotReachable) {}