gpt4 book ai didi

swift - iOS swift 在(元组)数组字典中表示应用程序 View 状态

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

我正在尝试通过将应用程序 View 状态存储在元组数组中来存储应用程序 View 状态。每个元组都包含 View 、属性及其值。例如。 (按钮,“隐藏”,假“)。因此结构示例如下:

 var states = Dictionary<String, Array<(view: AnyObject, property: AnyObject, value:  AnyObject)>>() 

但问题是,当我像这样迭代该数组时,我无法提取要设置的值:

for var tuple in states[stateName]! {
tuple.view.hidden = tuple.value
print(tuple.view, tuple.value)
}

“无法分配给属性”,因为元组是不可变的。

有两个问题:

  1. 如何正确提取和设置值。
  2. (次要)也许可以在结构方面更好地代表国家。

最佳答案

在我看来,我会像这样构造元组。

struct tuple {
var view: UIView
var property: Any
var value: Bool
init(view: UIView, property: Any, value: Bool) {
self.view = view
self.property = property
self.value = value
}
}

var states = Array<Dictionary<String, tuple>>()

override func viewDidLoad() {
super.viewDidLoad()

// set initial value
var tuple1 = ["123" : tuple(view: UIView(), property: 2, value: false)]
var tuple2 = ["456" : tuple(view: UIView(), property: 5, value: false)]

// update value
print(tuple1.keys.first)
tuple1.updateValue(tuple(view: UIView(), property: 2, value: true), forKey: "123") // one way
tuple1[tuple1.keys.first!]?.property = 3 // another way
states = [tuple1, tuple2]

for item in states {
if item.keys.contains("123") {
item["123"]?.view.isHidden = (item["123"]?.value)!
print(item["123"]?.view.isHidden, item["123"]?.value, item["123"]?.property)
}
}
}

关于swift - iOS swift 在(元组)数组字典中表示应用程序 View 状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39156041/

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