[swift] Reachability를 사용해 특정 URL에 대한 연결 상태 체크하기

애플리케이션에서 특정 URL에 대한 연결 상태를 확인해야 하는 경우가 있습니다. 이를 위해 Reachability 라이브러리를 사용할 수 있습니다. Reachability는 네트워크 상태를 확인하고 인터넷 연결 가능 여부를 알려주는 유용한 도구입니다.

1. Reachability 라이브러리 추가하기

먼저, Reachability 라이브러리를 프로젝트에 추가해야 합니다. CocoaPods를 사용할 경우, Podfile에 다음과 같이 추가합니다.

pod 'ReachabilitySwift'

별도의 의존성 관리 도구를 사용하지 않는 경우, 수동으로 Reachability를 프로젝트에 추가해야 합니다. Reachability공식 GitHub 페이지에서 다운로드할 수 있습니다.

2. Reachability 클래스를 사용해 URL 연결 상태 확인하기

import ReachabilitySwift

func checkURLStatus() {
    if let reachability = Reachability() {
        reachability.whenReachable = { reachability in
            DispatchQueue.main.async {
                if reachability.isReachableViaWiFi {
                    print("WiFi 연결 상태입니다.")
                } else {
                    print("모바일 데이터 연결 상태입니다.")
                }
            }
        }
        reachability.whenUnreachable = { reachability in
            DispatchQueue.main.async {
                print("연결이 끊어졌습니다.")
            }
        }
        do {
            try reachability.startNotifier()
        } catch {
            print("Reachability를 시작할 수 없습니다.")
        }
    }
}

위의 코드는 Reachability 클래스를 사용하여 특정 URL에 대한 연결 상태를 확인하는 예제입니다. Reachability의 인스턴스를 생성하고, 해당 URL이 연결 가능한지 여부를 확인할 수 있습니다. 연결 상태가 변경되면 whenReachable 또는 whenUnreachable 클로저가 호출됩니다.

이제 checkURLStatus 함수를 호출하여 특정 URL에 대한 연결 상태를 확인할 수 있습니다.

3. 참고 자료