我正在以 JSON 的形式从 API 获取数据。我得到一个动态类型的变量 Swift.Dictionary<NSObject, Swift.AnyObject>
并调用此变量 myDictionary
.当我要求 print(myDictionary["keyA"])
它返回与“keyA”关联的值(内部字典),但它返回为 Swift.Optional<Swift.AnyObject>
.
如何使用非可选的内部字典设置变量?或者我如何访问内部字典值?
最佳答案
所有字典访问都作为可选返回,因为使用的键可能不存在于字典中,因此在这种情况下返回nil
。您可以使用可选的转换 as?
以及可选的绑定(bind) if let
来确保该值存在,它是预期的字典,并将其解包:
if let innerDictionary = myDictionary["keyA"] as? [NSObject: AnyObject] {
// if we get here, "keyA" is a valid key in myDictionary and
// we got the type right. innerDictionary is now unwrapped and ready
// to use.
}
我使用 [NSObject: AnyObject]
作为 innerDictionary 类型。如果您对此了解更多,则可以使用更具体的转换,例如 as? [String: String]
如果您知道键和值都是 String
类型。如果你错了,可选的转换将返回 nil
并且不会进入 block ,因为可选的绑定(bind)不会成功。
关于json - Swift 从 Dictionary of Dictionary 中删除 optional,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31254612/