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

标签 ios swift dictionary collections ios8

我在我的 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]

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

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]) 

我引用了苹果的文档,但没有发现任何有用的东西。 在 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/

相关文章:

iphone - 使用 UIRoundRectButton 在 iPhone 模拟器中剪切文本 - 与我在 Storyboard 中看到的不同

ios - 如何使用 SDWebImageDownloader 取消下载

ios - 在 iOS 上同时支持繁体和简体中文

ios - Swift:滚动时标签和图像的 UICollectionView 单元格重复

ios - 在 SwiftUI 的 ListView 中使用可识别的对象集

c# - 锁定字典对象的正确方法

javascript - 如何在 IOS 共享菜单中显示我的 cordova 应用程序?

ios - UILocalNotification 即使日期已过,也会继续触发

python - 使用 Pandas 根据列的唯一值创建 DataFrame,然后为创建的每个 DF 导出到 Excel

python - Django 模板 "for loops"无法正常工作