gpt4 book ai didi

swift 4 弱变量

转载 作者:行者123 更新时间:2023-11-30 11:14:18 26 4
gpt4 key购买 nike

在下面的代码中,为什么当 car1 变量被赋值为 nil 时,car2 不是 nil ?有人可以解释一下吗?我问这个问题是因为我知道当一个对象的所有强引用都被分配为 nil 时,所有其他弱引用都会自动分配为 nil 。这是错误的吗?

非常感谢。

class ViewController: UIViewController {
var car1 : Car? = Car()
weak var car2 : Car?

override func viewDidLoad() {
super.viewDidLoad()
car2 = car1
car1 = nil
print("gfehtre")
}

override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}

最佳答案

不确定您的问题是什么:仅当在下一行执行 car2 = car1 时,car2 才不是 nil car1 = nil car2 也变为 nil,

自己测试一下:

override func viewDidLoad() {
super.viewDidLoad()

if let _ = car2 {
print("first")
}

car2 = car1

if let _ = car2 {
print("second")
}

car1 = nil

if let _ = car2 {
print("third")
}
}

您将在控制台中看到,在所有其他情况下,car2 为零,仅打印 second

关于swift 4 弱变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51892588/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com