json - Swift 从 Dictionary of Dictionary 中删除 optional

标签 json xcode swift api

我正在以 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/

相关文章:

xcode - install_name_tool报告格式错误的对象

ios - 如何从字符串中提取表情符号?

json - 字符串列表未呈现为JSON

javascript - ajax post请求后在php中解析json

json - 在 mac 上显示我的工具栏 (Node-Webkit)

ios - iPhone 可以充当 NFC 标签吗?

ios - 以编程方式快速实现 UITableView

javascript - 为什么我从 jsonp 结果中得到相同的引用

iphone - 设置包中的只读字符串

ios 二进制 .app 文件不可点击