如何在viewDidLoad方法内的UIViewController中初始化方法

时间:2017-09-11 21:17:46

标签: ios swift viewdidload

有一种创建数据的方法。此方法只需调用一次。所以目前这是结构:

var dataCreated : Bool? = false



override func viewDidLoad() {
    super.viewDidLoad()

    if dataCreated! == false {
        createData()
        self.dataCreated = true
    }
}

这是确保createData()方法只调用一次的正确方法吗?谢谢。

2 个答案:

答案 0 :(得分:2)

由于您只希望每个视图控制器实例调用一次createData,因此使用viewDidLoad是调用它的好地方。此外,由于viewDidLoad仅在视图控制器的每个实例中调用一次,因此不需要dataCreated属性。你可以删除它。

override func viewDidLoad() {
    super.viewDidLoad()

    createData()
}

另一种选择是从视图控制器的createData方法调用init。这取决于createData需要访问的内容。如果createData方法需要访问视图和商店,则必须使用viewDidLoad

答案 1 :(得分:0)

您的代码将按预期工作。您可能更愿意通过检查数据是否存在而不是跟踪单独的布尔变量来计算数据是否已创建。虽然这也会奏效。