gpt4 book ai didi

ios - 如何动态地在swift字典中添加值

转载 作者:可可西里 更新时间:2023-11-01 01:43:55 29 4
gpt4 key购买 nike

我已经在我的 swift 类中声明了一个字典,如下所示:

var profileDetail = Dictionary<String, String>()

但我无法在其中添加值。如果我像下面这样尝试,它只存储最后一个值。

profileDetail = [profileItem[1]:values.valueForKey("middle_name") as String]
profileDetail = [profileItem[2]:values.valueForKey("last_name") as String]
profileDetail = [profileItem[3]:values.valueForKey("gender") as String]
profileDetail = [profileItem[4]:values.valueForKey("birth_date") as String]
profileDetail = [profileItem[5]:"\(add1),\(add2)"]
profileDetail = [profileItem[6]:values.valueForKey("email") as String]

或者以下给出了不正确的 key 异常:

ProfileDetail.setValue(values.valueForKey("first_name") as String, forKey: profileItem[0])
ProfileDetail.setValue(values.valueForKey("middle_name") as String, forKey: profileItem[1])
ProfileDetail.setValue(values.valueForKey("last_name") as String, forKey: profileItem[2])
ProfileDetail.setValue(values.valueForKey("gender") as String, forKey: profileItem[3])
ProfileDetail.setValue(values.valueForKey("birth_date") as String, forKey: profileItem[4])
ProfileDetail.setValue("\(add1),\(add2)", forKey: profileItem[5])
ProfileDetail.setValue(values.valueForKey("email") as String, forKey: profileItem[5])

我引用了 apple 的文档,但没有发现任何有用的东西。在 Dictionary 中添加值的正确方法是什么?动态地?

最佳答案

在这一行中,您将实例化一个字典:

var profileDetail =  Dictionary<String, String>()

profileDetail 变量标识,但在所有其他后续行中,您不断将该变量重新分配给其他内容。也许这更好地解释了您所犯的错误:

var x: Int = 1
x = 2
x = 3
x = 4

每一行都为同一个变量分配一个新值,因此之前的值会丢失。

我认为你应该用类似的东西替换每一行:

profileDetail[profileItem[1]] = values.valueForKey("middle_name") as String

或者更好的是,您可以按如下方式在单个语句中进行初始化:

var profileDetail = [
profileItem[1]: values.valueForKey("middle_name"),
profileItem[2]: values.valueForKey("last_name"),
...
]

如果这个字典在实例化后不应被修改,您也可以将 var 更改为 let

关于ios - 如何动态地在swift字典中添加值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25397860/

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