現在、現在のプロジェクトにReachabilityを実装しようとしています。私は働いているYouTubeのチュートリアルに従っていましたが、正しい方法であるかどうかはわかりません。 Reachabilityのドキュメント(https://github.com/ashleymills/Reachability.swift)では、最初に 'Example - closures'という2つの例が示されています。ここでは、viewDidLoadで行われていると仮定しています。これは私が混乱してしまいどこ作成者が行うことを言うである、 - 「通知例」viewDidAppearですべてのこと現在、Swift Reachabilityを使いこなしていますが、viewDidLoadまたはviewDidAppearで自分のコードをすべて行う必要がありますか?
//declare this property where it won't go out of scope relative to your listener
let reachability = Reachability()!
reachability.whenReachable = { reachability in
// this is called on a background thread, but UI updates must
// be on the main thread, like this:
DispatchQueue.main.async {
if reachability.isReachableViaWiFi() {
print("Reachable via WiFi")
} else {
print("Reachable via Cellular")
}
}
}
reachability.whenUnreachable = { reachability in
// this is called on a background thread, but UI updates must
// be on the main thread, like this:
DispatchQueue.main.async {
print("Not reachable")
}
}
do {
try reachability.startNotifier()
} catch {
print("Unable to start notifier")
}
と最後の例でした。私がviewDidLoadの中ですべてをやっているのであれば、本当に大きな違いはありますか?それは何かの結果を変えるのだろうか?それは現在正常に動作しますが、私はそれが正しいかどうかは分かりません、私は将来私に影響を与えたくありません。どんな助けも素晴らしいだろう!ありがとう。
大きな相違点は、viewDidLoadはそのオブジェクトの寿命中に1回発生しますが、viewDidAppearは既存のコントローラのビューが表示可能になるたびに発生するという点です。おそらく、到達可能性クロージャを一度設定するだけで済みます。ビューの視認性が変わったときに「スタート」を1回行うかオフにするかは、あなた次第です。 –