【发布时间】:2017-09-25 13:25:02
【问题描述】:
TLDR:尝试创建类型为 [String]/[Any] 的字典,其键包含混合数据类型的数组。然后尝试循环并仅使用键和布尔值创建一个新的字典会导致强制转换错误。
提前感谢您的帮助!
长版:
我需要将 4 个数组(2 个字符串、1 个布尔值、1 个整数)转换为字典。我用字符串类型的键和任何类型的值创建了一个字典,因为我需要一个字符串数组作为键,其余的作为值包含在数组中。像这样:
var dict1: [String: [Any]] = [:]
然后我遍历前面提到的数组并创建键/值对:
编辑:i = 0
//i-1 to match iteration with array position
while i < dict1.count {
i += 1
dict1[stringArray1[i-1]] = [intArray[i-1], boolArray[i-1], stringArray2[i-1]]
}
当我打印字典时,它包含正确的键/值对。
现在我需要创建一个字典,其中仅包含 dict1 中的键和键中的 Bool 数组值。所以我设置了一个这样的空数组:
var dict2: [String: [Bool]] = [:]
并尝试像这样创建 KeyValue 对:
for (string, bool) in dict1 {
dict2[string] = bool
}
我收到一条错误消息,提示我需要强制强制转换为 Bool 类型。强制转换为 Bool 类型会产生错误,提示 swift 无法将 Int 转换为 Bool。我尝试将 dict2 中的 Key 的类型更改为 Int 类型,但出现错误说要预测为 Int 类型。这样做说明 Swift 不能强制 Bool 为 Int。
【问题讨论】:
标签: arrays swift xcode dictionary