我正在尝试从我的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()
}
使用forEach
并为每个键创建一个URLKeys并将每个值转换为字符串
var enumDict:[URLKeys: String] = [:]
keysDictionary.forEach {
if let key = URLKeys(rawValue: $0.0), let value = $0.1 as? String {
enumDict[key] = value
}
}