假设有一个带有属性的 UIViewController
private var counter = 1
。
当类加载到内存中或每次viewDidLoad()
方法调用时,此属性是否会获取其值?
答案 0 :(得分:3)
viewDidLoad
与属性的初始化无关。初始化类时,属性仅初始化一次。这就是为什么必须直接或在构造函数中初始化非可选属性的原因。
viewDidLoad
只是常规函数,即使您直接调用它,属性也保持不变(如果它们在此方法中未更改)。
viewDidLoad
是ViewControllers生命周期的一部分,只有在创建类并从xib加载时才会调用它。这就是为什么这种方法适合初始设置的原因......
答案 1 :(得分:1)
viewDidLoad
仅在实例化时被调用,因此它只被异端创建调用一次。
所以它是一样的。
答案 2 :(得分:0)
如上所述:
viewDidLoad
通常用于ViewController的init设置和变量(如果有必要)。deinit
通常用于设置每个ViewController变量的nil
。