在Swift中,用分配的值声明变量是一种好习惯吗?

时间:2019-06-11 01:28:56

标签: swift memory-management

以默认值声明变量,例如:

var myBoolean = false

或者在诸如viewDidLoad或其他委托的视图生命周期方法中初始化值更好。

override func viewDidLoad() {
    self.myBoolean = false
}

我想知道其中之一在内存使用方面是否更好。

(我知道,如果您希望每次查看时都将变量设置为一个值,则可以使用viewWillAppear)。

1 个答案:

答案 0 :(得分:6)

  

还是在诸如viewDidLoad之类的视图生命周期方法中初始化值是更好的选择

它不是“更好”的。这是不可能的。

您无法通过第二个代码初始化self.myBoolean

override func viewDidLoad() {
    self.myBoolean = false
}

在我们到viewDidLoad时,已经初始化了所有实例变量,例如self.myBoolean,因为它们必须在创建self时进行初始化,而这已经发生了。因此,根据定义,您的代码 not 不初始化self.myBoolean;它正在覆盖它已经存在的价值。它已通过其他方式进行了初始化。

所有存储实例变量必须具有初始值,该初始值可以在声明的同一行中或通过init来赋值。没有其他方法,而且没有一个比另一个更有效。