Info.plist 字典到 Enum:String 类型的字典

Info.plist Dictionary to Dictionary of type Enum:String

我正在尝试从我的 Info.plist 中取出字典并将其保存为枚举类型的字典:String

为了更好地解释,我正在尝试将下面的 urlDict 转换为 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()
}

使用 forEach 并为每个键创建一个 URLKeys 并将每个值转换为字符串

var enumDict:[URLKeys: String] = [:]
keysDictionary.forEach { 
    if let key = URLKeys(rawValue: [=10=].0), let value = [=10=].1 as? String {
        enumDict[key] = value
    }
}