gpt4 book ai didi

ios - 数组中的值不更新

转载 作者:搜寻专家 更新时间:2023-11-01 06:32:11 24 4
gpt4 key购买 nike

当我在这里搜索时,我现在知道 Swift 中的几乎所有内容都是基于值的,而不是引用的基础。我还读过一个类包含引用。我尽力了,但下面的代码不会打印任何东西。如果有人可以帮助我在数组的帮助下打印出那一行,那就太好了 :)(当然如果可能的话......)。

编辑:我想要数组中的 5 个 bool 值,它们都有一个 didSet 方法。当我访问它们时,特定的 didSet 将触发。这可能吗?

class PowerUpBooleans{
var boolean: Bool
init(boolean: Bool){
self.boolean = boolean
}
}
var iWantToChangeThis = false{
didSet{
print("it worked")
}
}
var powerUpBooleans = [PowerUpBooleans]()
override func viewDidLoad() {
super.viewDidLoad()
powerUpBooleans.append(PowerUpBooleans(boolean: iWantToChangeThis))
powerUpBooleans[0].boolean = true
}

最佳答案

我猜你想设置一些有自己触发器的 bool 值。

据我所知,让值类型被类包裹只能让它成为引用类型。

所以试试这个。

class PowerUpBooleans{
var boolean: Bool {
didSet {
trigger()
}
}
var trigger: () -> ()

init(boolean: Bool, trigger: @escaping () -> ()){
self.boolean = boolean
self.trigger = trigger
}
}

let trigger1 = {
print("one worked.")
}
let trigger2 = {
print("two worked.")
}

var powerUpBooleans = [PowerUpBooleans]()
powerUpBooleans.append(PowerUpBooleans(boolean: false, trigger: trigger1))
powerUpBooleans.append(PowerUpBooleans(boolean: false, trigger: trigger2))
powerUpBooleans[0].boolean = true // print one worked
powerUpBooleans[1].boolean = false // print two worked

关于ios - 数组中的值不更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45625546/

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