우선 다음의 헤더들을 포함하여 주어야 합니다.
#import <SystemConfiguration/SystemConfiguration.h>
#import <netinet/in.h>
또한 이것만으로는 부족하고 SystemConfiguration 프레임워크를 추가하여야 합니다.

- (void)applicationDidFinishLaunching:(UIApplication *)application {
NSLog(@"Connection status : %@", [self connectedToNetwork] ? @"YES" : @"NO");
[window makeKeyAndVisible];
}
- (BOOL) connectedToNetwork {
// 0.0.0.0 주소를 만든다.
struct sockaddr_in zeroAddress;
bzero(&zeroAddress, sizeof(zeroAddress));
zeroAddress.sin_len = sizeof(zeroAddress);
zeroAddress.sin_family = AF_INET;
// Reachability 플래그를 설정한다.
SCNetworkReachabilityRef defaultRouteReachability = SCNetworkReachabilityCreateWithAddress(NULL, (struct sockaddr *)&zeroAddress);
SCNetworkReachabilityFlags flags;
BOOL didRetrieveFlags = SCNetworkReachabilityGetFlags(defaultRouteReachability, &flags);
CFRelease(defaultRouteReachability);
if (!didRetrieveFlags)
{
printf("Error. Could not recover network reachability flags\n");
return 0;
}
// 플래그를 이용하여 각각의 네트워크 커넥션의 상태를 체크한다.
BOOL isReachable = flags & kSCNetworkFlagsReachable;
BOOL needsConnection = flags & kSCNetworkFlagsConnectionRequired;
BOOL nonWiFi = flags & kSCNetworkReachabilityFlagsTransientConnection;
return ((isReachable && !needsConnection) || nonWiFi) ? YES : NO;
}네트워크 상태를 connectedToNetwork메서드를 호출하여 Boolean형태로 확인할 수 있습니다.
"허접프로그래머 / iPhone&Objective-C" 분류의 다른 글
트랙백을 보내세요
트랙백 주소 :: http://theeye.pe.kr/trackback/325
NetworkStatusExample.zip

