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

问题描述 投票:0回答:1

我正在尝试从我的Info.plist中获取一个字典,并将其保存为Enum:String类型的字典

为了更好地解释,我正在尝试将下面的urlDict转换为类型的字典,但不断致命的错误。

我无法弄清楚为什么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()
}
swift nsdictionary info.plist
1个回答
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
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.