Info.plist 字典到 Enum:String 类型的字典
Posted
技术标签:
【中文标题】Info.plist 字典到 Enum:String 类型的字典【英文标题】:Info.plist Dictionary to Dictionary of type Enum:String 【发布时间】:2019-02-20 13:09:02 【问题描述】:我正在尝试从我的 Info.plist 中获取字典并将其保存为 Enum: String 类型的字典
为了更好地解释,我正在尝试将下面的 urlDict 转换为类型的字典,但不断出现致命错误。
我不知道为什么
let enumDict = urlDict["keys"] as? Dictionary<URLKeys, String>
不起作用
枚举有一个原始类型的 String 并且有一个 keyOne 的 case。
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()
【问题讨论】:
【参考方案1】:使用forEach
并为每个键创建一个 URLKeys 并将每个值转换为字符串
var enumDict:[URLKeys: String] = [:]
keysDictionary.forEach
if let key = URLKeys(rawValue: $0.0), let value = $0.1 as? String
enumDict[key] = value
【讨论】:
以上是关于Info.plist 字典到 Enum:String 类型的字典的主要内容,如果未能解决你的问题,请参考以下文章
使用 XCODE 将 UIRequiredDeviceCapabilities 添加到 info.plist [重复]