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))
{
}
È stato utile?

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) {}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top