本日内容
ライブラリを使わずにApple純正の方法(NWPathMonitor)で、Networkのハンドリングをできることが気がつきました。
今回はその時の手順を記載しております。
NWPathMonitor
An observer that you use to monitor and react to network changes.
ネットワークの変更を監視して対応するために使用するオブザーバー。
Availability
iOS 12.0+
macOS 10.14+
Mac Catalyst 13.0+
tvOS 12.0+
watchOS 5.0+
Xcode 10.0+
開発環境
Xcode 14.4
Swift
iOS14以上
手順
1.Network.swiftを作り、下記を追加します。
import Network
class Network {
static let shared = Network() //シングルトン
private let monitor = NWPathMonitor()
func setUp() {
monitor.pathUpdateHandler = { _ in
}
let queue = DispatchQueue(label: "Monitor")
// ネットワーク監視開始
monitor.start(queue: queue)
}
func isOnline() -> Bool {
return monitor.currentPath.status == .satisfied
}
}
2.AppDelegateに下記を参考に、Network.shared.setUp()を追加します
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
Network.shared.setUp() // 初期化対応
return true
}
3.ネットワークを実際に確認する場合
if Network.shared.isOnline {
//ネットワークあり
} else {
//ネットワークなし
}
今回は以上になります!
これでネットワークErrorハンドリングして、ユーザー体験の向上にお役に立てればと存じます!
素敵な開発生活を!
最後まで読んでいただき、ありがとうございましたmm
参考資料
NWPathMonitorを使ったインターネット接続の確認方法
https://www.richcoding.co.jp/2020/03/26/nwpathmonitor/
NWPathMonitorのハマりどころ
https://qiita.com/noppefoxwolf/items/55fafdea55de754d2b3d
Apple公式
https://developer.apple.com/documentation/network/nwpathmonitor