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

use*_*erx 1 memory-management swift

声明具有默认值的变量是否是一个好习惯:

var myBoolean = false
Run Code Online (Sandbox Code Playgroud)

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

override func viewDidLoad() {
    self.myBoolean = false
}
Run Code Online (Sandbox Code Playgroud)

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

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

mat*_*att 6

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

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

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

override func viewDidLoad() {
    self.myBoolean = false
}
Run Code Online (Sandbox Code Playgroud)

在到的时候viewDidLoad,任何实例变量(例如实例变量)self.myBoolean都已经初始化,因为它们必须在self创建时进行初始化,而这已经发生了。因此,根据定义,您的代码没有初始化self.myBoolean;它正在覆盖它已经存在的价值。它以其他方式进行了更早的初始化。

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