首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Swift 3:如何从[String: AnyObject]转换为[String: String]?

Swift 3:如何从[String: AnyObject]转换为[String: String]?
EN

Stack Overflow用户
提问于 2017-07-18 03:45:32
回答 2查看 2.2K关注 0票数 0

我想要将[String: Anyobject]字典转换为[String: String]字典?我该怎么做呢?

EN

回答 2

Stack Overflow用户

发布于 2017-07-18 04:07:57

不能直接将字典从[String: AnyObject]转换为[String: String]:因为AnyObject可以在同一字典中包含不同类型的值,所以每个这样的值条目不一定都可以转换为String

相反,如果可能,您需要遍历每个键-值对,并有条件地将值转换为String。例如:

代码语言:javascript
复制
// (example) source dict
let dict: [String: AnyObject] = ["foo": "1" as AnyObject,
                                 "bar": 2 as AnyObject,
                                 "baz": "3" as AnyObject]

// target dict
var targetDict = [String: String]()
for (key, value) in dict {
    if let value = value as? String { targetDict[key] = value }
} // targetDict: ["foo": "1", "baz": "3"]
票数 2
EN

Stack Overflow用户

发布于 2017-07-18 03:47:39

简单地说,你可以这样做:

代码语言:javascript
复制
if let castedDict = dictionary as? [String: String] {
    print("Converted successfully: \(castedDict)")

} else {
    print("Failed to cast the dictionary")
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45152438

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档