如何在 viewDidLoad 方法内部的 UIViewController 中初始化方法
how to initialize methods in a UIViewController inside of a viewDidLoad method
有一种创建数据的方法。此方法只需调用一次。所以目前这是结构:
var dataCreated : Bool? = false
override func viewDidLoad() {
super.viewDidLoad()
if dataCreated! == false {
createData()
self.dataCreated = true
}
}
这是确保 createData()
方法只被调用一次的正确方法吗?谢谢。
因为你只希望 createData
在你的视图控制器的每个实例中被调用一次,那么使用 viewDidLoad
是调用它的好地方。此外,由于 viewDidLoad
仅在视图控制器的每个实例中调用一次,因此不需要 dataCreated
属性。你可以删除它。
override func viewDidLoad() {
super.viewDidLoad()
createData()
}
另一种选择是从视图控制器的 init
方法调用 createData
。这取决于 createData
需要访问什么。如果 createData
方法需要访问视图和出口,那么您必须使用 viewDidLoad
.
您的代码将按预期工作。您可能更愿意通过检查数据是否存在来计算数据是否已创建,而不是跟踪单独的布尔变量。虽然这也行。
有一种创建数据的方法。此方法只需调用一次。所以目前这是结构:
var dataCreated : Bool? = false
override func viewDidLoad() {
super.viewDidLoad()
if dataCreated! == false {
createData()
self.dataCreated = true
}
}
这是确保 createData()
方法只被调用一次的正确方法吗?谢谢。
因为你只希望 createData
在你的视图控制器的每个实例中被调用一次,那么使用 viewDidLoad
是调用它的好地方。此外,由于 viewDidLoad
仅在视图控制器的每个实例中调用一次,因此不需要 dataCreated
属性。你可以删除它。
override func viewDidLoad() {
super.viewDidLoad()
createData()
}
另一种选择是从视图控制器的 init
方法调用 createData
。这取决于 createData
需要访问什么。如果 createData
方法需要访问视图和出口,那么您必须使用 viewDidLoad
.
您的代码将按预期工作。您可能更愿意通过检查数据是否存在来计算数据是否已创建,而不是跟踪单独的布尔变量。虽然这也行。