AFNetworking은 현재 깃헙에서 별이 가장 많은 Objective-c 프로젝트로 알고 있다. 그만큼 안정적이고 좋은 기능들을 손 쉽게 쓸 수 있다. 아마 AFNetworking 없다면 꽤 고생을 했을거같다.
앱을 개발하다 보면 이런 화면을 볼때가 있다. 만약 앱을 구동하는데 필요한 리소스가 크다면 사용자의 셀룰러 데이터 플랜을 모르는 이상 안내도 없이 데이터를 쭉쭉쭉 다 써버리는건 친절한 개발이 아니라고 생각한다. 이런 경우를 막기 위해 개발자가 디바이스에서 현재 네트워크 상태가 어떤 상태인지 확인하기 위해 AFNetworking에서는 다 만들어줬다! 와 감사합니다!! 사용방법도 정말 간단하다!! 와 신난다!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
//네트워크 상태를 모니터링한다 [[AFNetworkReachabilityManager sharedManager] startMonitoring]; [[AFNetworkReachabilityManager sharedManager] setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) { if (status == AFNetworkReachabilityStatusNotReachable) { NSLog(@"네트워크 사용 할 수 없음"); } else if (status == AFNetworkReachabilityStatusUnknown){ NSLog(@"네트워크 상태 알 수 없음"); } else { if (status == AFNetworkReachabilityStatusReachableViaWiFi) { NSLog(@"와이파이"); } else if (status == AFNetworkReachabilityStatusReachableViaWWAN){ NSLog(@"3G/LTE 등 셀룰러 네트워크"); } } }]; //모니터링 중지 // [[AFNetworkReachabilityManager sharedManager] stopMonitoring]; |
AFNetworkReachabilityManager의 startMonitoring메소드를 통해 모니터링을 시작하고 setReachabilityStatusChangeBlock의 블록문 안에다가 내가 원하는 액션을 설정해준다. 그리고 모니터링이 필요없어지면 stopMonitorring로 멈추면 된다! 네트워크가 안되는 상태의 테스트는 디바이스의 에어플레인 모드를 사용하면 쉽게 할 수 있다.
참고 URL
AFNetworking github
AFNetworking 사용해보기
코코아팟을 이용한 오픈소스 설치