이번 글에서는 Swift에서 Reachability를 사용하여 특정 호스트에 대한 연결 상태를 체크하는 방법에 대해 알아보겠습니다. Reachability는 네트워크 연결 상태를 감지하기 위한 유용한 도구입니다. 이를 사용하여 앱이 인터넷에 연결되어 있는지를 확인할 수 있습니다.
Reachability 클래스 설치
먼저, Reachability 클래스를 설치해야 합니다. Reachability는 Apple에서 제공하는 네트워크 상태 감지 라이브러리입니다. 아래와 같이 CocoaPods를 사용하여 Reachability를 설치할 수 있습니다.
pod 'ReachabilitySwift'
Reachability를 설치하려면 Podfile에 위의 코드를 추가한 후, 터미널에서 pod install
을 실행하면 됩니다.
Reachability 사용하기
Reachability를 사용하기 위해서는 먼저 Reachability 클래스를 import해야 합니다.
import ReachabilitySwift
다음은 특정 호스트에 대한 연결 상태를 체크하는 예제 코드입니다.
guard let reachability = Reachability(hostname: "www.example.com") else {
print("Reachability 생성에 실패했습니다.")
return
}
reachability.whenReachable = { reachability in
DispatchQueue.main.async {
if reachability.isReachableViaWiFi {
print("WiFi에 연결되었습니다.")
} else {
print("셀룰러 네트워크에 연결되었습니다.")
}
}
}
reachability.whenUnreachable = { _ in
DispatchQueue.main.async {
print("인터넷 연결이 끊어졌습니다.")
}
}
do {
try reachability.startNotifier()
} catch {
print("Reachability를 시작할 수 없습니다.")
}
위의 코드에서는 Reachability 인스턴스를 생성한 후, whenReachable
클로저와 whenUnreachable
클로저를 정의합니다. whenReachable
클로저는 호스트에 연결 가능할 때 호출되며, whenUnreachable
클로저는 호스트에 연결 불가능할 때 호출됩니다.
호스트에 연결 가능한 상태에서는 현재 연결된 네트워크 유형에 따라 해당하는 메시지가 출력됩니다. 호스트에 연결 불가능한 상태에서는 “인터넷 연결이 끊어졌습니다.”라는 메시지가 출력됩니다.
리턴 값으로 Reachability
인스턴스를 얻을 수 없는 경우, Reachability 생성에 실패했다는 메시지가 출력됩니다.
참고 자료
- ReachabilitySwift GitHub 레포지토리: https://github.com/ashleymills/Reachability.swift