我正在尝试从Info.plist中获取字典并将其另存为Enum:String类型的Dictionary
为了更好地解释,我正在尝试将下面的urlDict转换为Type的Dictionary,但始终会出现致命错误。
我不知道为什么
let enumDict = urlDict["keys"] as? Dictionary<URLKeys, String>
不起作用
该枚举具有String的原始类型,并具有keyOne的大小写。
enum URLKeys: String {
case keyOne = "keyOne"
}
var keysDictionary = Dictionary<String, Any>()
keysDictionary["keyOne"] = "abc"
var urlDict = Dictionary<String, Any>()
urlDict["keys"] = keysDictionary
guard let enumDict = urlDict["keys"] as? Dictionary<URLKeys, String> else {
fatalError()
}
答案 0 :(得分:2)
使用forEach
并为每个键创建一个URLKeys并将每个值转换为字符串
var enumDict:[URLKeys: String] = [:]
keysDictionary.forEach {
if let key = URLKeys(rawValue: $0.0), let value = $0.1 as? String {
enumDict[key] = value
}
}