Ios 如何在viewDidLoad方法内部初始化UIViewController中的方法
有一种创建数据的方法。此方法只需调用一次。因此,目前的结构是:Ios 如何在viewDidLoad方法内部初始化UIViewController中的方法,ios,swift,viewdidload,Ios,Swift,Viewdidload,有一种创建数据的方法。此方法只需调用一次。因此,目前的结构是: var dataCreated : Bool? = false override func viewDidLoad() { super.viewDidLoad() if dataCreated! == false { createData() self.dataCreated = true } } 这是确保只调用一次createData()方法的正确方法吗?谢谢。因为
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
,因为您只希望视图控制器的每个实例调用createData
,因此使用viewDidLoad
是调用它的好地方。此外,由于视图控制器的每个实例只调用一次viewDidLoad
,因此不需要dataCreated
属性。你可以把它去掉
override func viewDidLoad() {
super.viewDidLoad()
createData()
}
另一个选项是从视图控制器的
init
方法调用createData
。这取决于createData
需要访问的内容。如果createData
方法需要访问视图和出口,则必须使用viewDidLoad
您的代码将按预期工作。您可能更希望通过检查数据是否存在来计算数据是否已创建,而不是跟踪单独的布尔变量。尽管这也会起作用。您的代码将按预期工作。您可能更希望通过检查数据是否存在来计算数据是否已创建,而不是跟踪单独的布尔变量。尽管这也行。定义“一次”。创建此视图控制器的每个实例一次?每次应用程序运行一次?在正在安装的应用程序的生命周期内只调用一次?创建的视图控制器的每个实例调用一次viewdiload
仅对创建的视图控制器的每个实例调用一次定义为“一次”。创建此视图控制器的每个实例一次?每次应用程序运行一次?在正在安装的应用程序的生命周期内只调用一次?创建此视图控制器的每个实例调用一次viewdiload