SwiftでiOS開発をしているとviewWillAppearなどで一度だけ実行したい処理を書きたい場面がある。
Swift3になりdispatch_onceでかけなくなったりと困っている人がいると思います。
シンプルに簡単に実現するための処理を書きました。
まず以下のClassを生成する
OnceExec.swift
class OnceExec {
var isExec = false
func call(onceExec: ()->()){
if !isExec {
onceExec()
isExec = true
}
}
}
そして使用したいViewControllerで
以下を書く。
//実行したいClass内部に記載
var onceExec = OnceExec()
//viewWillAppearとかに書く
override func viewWillAppear(_ animated: Bool) {
onceExec.call {
//一度だけ実行したい処理メソッド
}
}