Я включил Apple Reachability.h & .m из их примера Reachability, а также инфраструктуру SystemConfiguration, упомянутую выше, а затем добавил в свое приложение следующий код, который имеет два преимущества по сравнению с ответом выше: он дает вам больше информации, и вы получаете асинхронные уведомления об изменениях состояния сети.
В вашем приложении-делегате или аналогичном добавьте его при запуске:
[self startReachability];
Затем добавьте этот метод, который вызывается при изменении сети:
#pragma mark Reachability changed
- (void)reachabilityChanged:(NSNotification*)aNote
{
self.remoteHostStatus = [[Reachability sharedReachability] remoteHostStatus];
switch (self.remoteHostStatus)
{
case NotReachable:
debugForComponent(kDebugMaskApp,@"Status changed - host not reachable");
break;
case ReachableViaCarrierDataNetwork:
debugForComponent(kDebugMaskApp,@"Status changed - host reachable via carrier");
break;
case ReachableViaWiFiNetwork:
debugForComponent(kDebugMaskApp,@"Status changed - host reachable via wifi");
break;
default:
debugForComponent(kDebugMaskApp,@"Status changed - some new network status");
break;
}
}