有一种创建数据的方法。此方法只需调用一次。所以目前这是结构:
var dataCreated : Bool? = false
override func viewDidLoad() {
super.viewDidLoad()
if dataCreated! == false {
createData()
self.dataCreated = true
}
}
这是确保createData()
方法只调用一次的正确方法吗?谢谢。
答案 0 :(得分:2)
由于您只希望每个视图控制器实例调用一次createData
,因此使用viewDidLoad
是调用它的好地方。此外,由于viewDidLoad
仅在视图控制器的每个实例中调用一次,因此不需要dataCreated
属性。你可以删除它。
override func viewDidLoad() {
super.viewDidLoad()
createData()
}
另一种选择是从视图控制器的createData
方法调用init
。这取决于createData
需要访问的内容。如果createData
方法需要访问视图和商店,则必须使用viewDidLoad
。
答案 1 :(得分:0)
您的代码将按预期工作。您可能更愿意通过检查数据是否存在而不是跟踪单独的布尔变量来计算数据是否已创建。虽然这也会奏效。