在“视图会出现”中有一个需要执行的功能。我该如何解决问题。
我试过
dispatch_once(&token) {
}
但是'一次发送'已被弃用,所以我现在遇到了麻烦。
答案 0 :(得分:0)
如果你这样做是为了分享该视图控制器的每个实例来启动某个对象的单个实例,那么你可能想要使用静态属性的惰性实例化。
例如:
class Foo: UIViewController {
static var monkey: Animal!
func getMonkey() -> Animal {
if Foo.monkey == nil {
Foo.monkey = Monkey() // we only make a new one if we don't have one
}
return Foo.monkey
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
getMonkey().doSomething() // you will always get the same monkey
}
}