我觉得我错过了什么,这不应该太难。
我正在我的应用程序的初始场景中读取一些数据。
我有一个单例,我在 viewDidLoad
中调用 singleton.getData()
。
这个初始场景是选项卡 Controller 的一部分。虽然我认为 viewDidLoad
只会为每个场景调用一次,但我很确定它在我的应用程序的生命周期中被调用了几次。
所以只是想知道是否有一种方法可以确保检索某些数据的函数调用只发生一次。
最佳答案
viewDidLoad
将在所选选项卡更改时调用,您可以更改调用 getData
的位置。
如果你想在 viewDidLoad
中调用 getData
并确保它不会被多次调用你可以创建一个标志并检查它是否以前被调用过或不是。
class Singleton {
static let sharedInstance = Singleton()
private static var getDataCalled = false
func getData() {
if Singleton.getDataCalled {
return
}
Singleton.getDataCalled = true
// request data
print("data requested")
}
}
Singleton.sharedInstance.getData()
Singleton.sharedInstance.getData()
多次调用 getData
打印仅请求一次的数据。
关于ios - 使用 tabcontroller 时如何只读取一次数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45935383/