Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Json Swift从字典的字典中删除可选项_Json_Xcode_Swift_Api - Fatal编程技术网

Json Swift从字典的字典中删除可选项

Json Swift从字典的字典中删除可选项,json,xcode,swift,api,Json,Xcode,Swift,Api,我以JSON的形式从api获取数据。我得到一个dynamicTypeSwift.Dictionary的变量,并调用这个变量myDictionary。当我要求打印(myDictionary[“keyA”])时,它返回与“keyA”关联的值(内部字典),但它以Swift.可选的形式返回 如何使用非可选的内部字典设置变量?或者如何访问内部字典值?所有字典访问都作为可选项返回,因为使用的键可能不存在于字典中,因此在这种情况下返回nil。您可以使用可选的强制转换作为?以及可选的绑定(如果let),以确保该

我以JSON的形式从api获取数据。我得到一个dynamicType
Swift.Dictionary的变量,并调用这个变量
myDictionary
。当我要求打印(myDictionary[“keyA”])
时,它返回与“keyA”关联的值(内部字典),但它以
Swift.可选的形式返回


如何使用非可选的内部字典设置变量?或者如何访问内部字典值?

所有字典访问都作为可选项返回,因为使用的键可能不存在于字典中,因此在这种情况下返回
nil
。您可以使用可选的强制转换
作为?
以及可选的绑定
(如果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
,并且不会输入块,因为可选绑定将不会成功。

您不能。默认情况下,字典中的任何内容都是可选的,因为当您请求某个键的值时,该键可能不存在,因此该值将为零。如果希望结果不是可选的,可以将其展开。内部字典是什么类型的?