gpt4 book ai didi

ios - 字典中的 swift 行动不可预测

转载 作者:行者123 更新时间:2023-11-30 12:19:11 25 4
gpt4 key购买 nike

我在字典参数中有一组参数:[String: Any]。此外,我有一些此类参数,我的应用程序需要存储它们并在按下按钮时切换每个参数。

代码:

var filterParameters: [String: Any] = [:]
var countryFilterParameters: [String: Any] = [:]

@IBAction func segmentHasChanged(_ sender: Any) {
if let segment = sender as? UISegmentedControl {
let currentCountryCode = ApiManager.shared.mainCountryCode
switch segment.selectedSegmentIndex {
case 0:
let filterParametersCopy = self.filterParameters
self.countryFilterParameters[currentCountryCode] = filterParametersCopy
ApiManager.shared.setCountryCode(_countryCode: "kz")
if let uwCountryFilterParameters = self.countryFilterParameters["kz"] as? [String : Any] {
self.filterParameters = uwCountryFilterParameters
} else {
self.filterParameters.removeAll()
}
break
case 1:
let filterParametersCopy = self.filterParameters
self.countryFilterParameters[currentCountryCode] = filterParametersCopy
ApiManager.shared.setCountryCode(_countryCode: "ru")
if let uwCountryFilterParameters = self.countryFilterParameters["ru"] as? [String : Any] {
self.filterParameters = uwCountryFilterParameters
} else {
self.filterParameters.removeAll()
}
break
case 2:
let filterParametersCopy = self.filterParameters
self.countryFilterParameters[currentCountryCode] = filterParametersCopy
ApiManager.shared.setCountryCode(_countryCode: "by")
if let uwCountryFilterParameters = self.countryFilterParameters["by"] as? [String : Any] {
self.filterParameters = uwCountryFilterParameters
} else {
self.filterParameters.removeAll()
}
break
default:
break
}
self.loadTenders()
}
}

预期字典:

["kz": ["q": "some key word", "start_date": ""],
"ru": ["q": "other key word", "start_date": ""]]

但每次我尝试访问countryFilterParameters时,它都会删除旧值。即:当我执行 CountryFilterParameters["by"] = ["q": "another key word", "start_date": ""] 时。debugPrint(CountryFilterParameters) 打印 ["by": ["q": "另一个关键字", "start_date": ""]]

问题是每次将新键值添加到全局字典时,它都会删除旧键值。可能是什么问题以及如何解决它?

我读到字典是一个结构,所以它是一个值类型。所以我很困惑,哪里做错了?

最佳答案

尝试删除 else 部分,从代码中删除字典的所有值。

        else {
self.filterParameters.removeAll()
}

从两个案例中删除此语句。

关于ios - 字典中的 swift 行动不可预测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45010587/

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