verifique conexão à internet em aplicativo de cacau

Como faço para verificar a conexão com a Internet em um aplicativo de cacau OS X? O código de exemplo do Apple Reachability da Apple pode ser reutilizado para esse fim?

Obrigado,

Nava

Este código irá ajudá-lo a descobrir se a internet está acessível ou não:

 -(BOOL)isInternetAvail { BOOL bRet = FALSE; const char *hostName = [@"google.com" cStringUsingEncoding:NSASCIIStringEncoding]; SCNetworkConnectionFlags flags = 0; if (SCNetworkCheckReachabilityByName(hostName, &flags) && flags > 0) { if (flags == kSCNetworkFlagsReachable) { bRet = TRUE; } else { } } else { } return bRet; } 

Para mais informações você pode olhar para o iPhone-acessibilidade

A versão atual do código de Acessibilidade (2.2) listada no site da Apple e mencionada acima NÃO é compilada como está para um aplicativo Mac OS X Cocoa. A constante kSCNetworkReachabilityFlagsIsWWAN só está disponível ao compilar as referências de TARGET_OS_IPHONE e Reachability.m constantes. Você precisará #ifdef os dois locais em Reachability.m que referenciam como abaixo:

 #if TARGET_OS_IPHONE (flags & kSCNetworkReachabilityFlagsIsWWAN) ? 'W' : '-', #else 0, #endif 

e

 #if TARGET_OS_IPHONE if ((flags & kSCNetworkReachabilityFlagsIsWWAN) == kSCNetworkReachabilityFlagsIsWWAN) { // ... but WWAN connections are OK if the calling application // is using the CFNetwork (CFSocketStream?) APIs. retVal = ReachableViaWWAN; } #endif 

A solução do Unicorn está obsoleta, mas você pode obter resultados equivalentes usando o seguinte código:

 SCNetworkReachabilityRef target; SCNetworkConnectionFlags flags = 0; Boolean ok; target = SCNetworkReachabilityCreateWithName(NULL, hostName); ok = SCNetworkReachabilityGetFlags(target, &flags); CFRelease(target); 

A Apple tem um código legal que faz isso por você. Você pode verificar se sua conexão é WiFi para instnace ou apenas celular / WiFi. Texto do link