32 lines
761 B
Swift
32 lines
761 B
Swift
//
|
|
// NetworkMonitor.swift
|
|
// LifeGameApp
|
|
//
|
|
// Created by Yusuke Hosonuma on 2020/08/15.
|
|
//
|
|
|
|
import SwiftUI
|
|
import Network
|
|
|
|
final class NetworkMonitor: ObservableObject {
|
|
@Published var status: NWPath.Status = .satisfied
|
|
|
|
init() {
|
|
NWPathMonitor()
|
|
.publisher()
|
|
.map(\.status)
|
|
.assign(to: &$status)
|
|
}
|
|
|
|
// Note: ✅
|
|
// @EnvironmentObject は`wrappedValue` に ObservableObject準拠を要求するため、
|
|
// モック側でも完全に同じプロパティを要求されてしまい無駄が多いので一端以下。
|
|
// (他に良い方法が見つかれば変更する)
|
|
|
|
#if DEBUG
|
|
init(mockStatus: NWPath.Status) {
|
|
status = mockStatus
|
|
}
|
|
#endif
|
|
}
|