前書きとして、この記事は
ginkgo.hateblo.jp 上記の記事で
swift2で書かれたものをswift5で踏襲し、備忘録としてまとめただけのものになります。
先ずはコードから
変更点
StackOverflowで発見しましたが、元のコードのswift2.2で書かれたものは
swift3.0以降では、別の書き方に変わっていたようでした。
// Swift2以前 dispatch_async(dispatch_get_main_queue(), ^{ }) // swift3以降 DispatchQueue.main.async(execute: { () -> Void in })
swift - Ambiguous use of DispatchQueue on trying to use main thread - Stack Overflow
あとはインジケーターの設定を
let indicator = UIActivityIndicatorView(activityIndicatorStyle: .Gray) // ↓↓↓↓↓↓↓↓ let indicator = UIActivityIndicatorView() indicator.color = UIColor.gray
とかに書き直してあげます。
余談
余談ですが、最前面の画面クラスを取得する処理は、NavigationControllなどの干渉を受ける可能性があり、
推奨されないそうです。
Swiftは学び始めたばかりでこの辺よくわかってないですが、バージョンアップが頻繁で先を見越して設計しないといけませんね...
ではまた
// こういうの lat vc = UIApplication.shared.keyWindow?.rootViewController;