TLDR:尝试创建一个类型为[String] / [Any]的字典,其中Key包含混合数据类型的数组 . 然后尝试循环并使用Key和Bool Value创建一个新的dict导致强制转换错误 .
在此先感谢您的帮助!
长版:
我有4个数组需要转换(2个字符串,1个Bool,1个Int)到字典中 . 我创建了一个字典,其字符串为String,类型为Any,因为我需要将一个String数组作为Key,其余的作为Value包含在数组中 . 像这样:
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的Key和来自key的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 .
1 回答
编辑:这将帮助你演员
这是一个例子,你如何过滤和转换[string:any]字典到[string:bool]
我认为你跟随这个并将[String:[Any]]转换为[String:[Bool]]没有问题