Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/112.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/35.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.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
Ios 从NSD字典快速读取数据_Ios_Iphone_Json_Swift_Nsdictionary - Fatal编程技术网

Ios 从NSD字典快速读取数据

Ios 从NSD字典快速读取数据,ios,iphone,json,swift,nsdictionary,Ios,Iphone,Json,Swift,Nsdictionary,我正在使用此代码从NSDictionary读取数据: let itemsArray: NSArray = response.objectForKey("items") as! NSArray; let nextPageToken: String = response.objectForKey("nextPageToken") as! String var videoIdArray: [String] = [] for (item) in itemsArray { let vide

我正在使用此代码从
NSDictionary
读取数据:

let itemsArray: NSArray = response.objectForKey("items") as! NSArray;
let nextPageToken: String = response.objectForKey("nextPageToken") as! String

var videoIdArray: [String] = []

for (item) in itemsArray {
      let videoId: String? = item.valueForKey("id")!.valueForKey("videoId") as? String
      videoIdArray.append(videoId!)
}
但是当我
下一个getoken
不存在时,我得到以下错误:

fatal error: unexpectedly found nil while unwrapping an Optional value

知道为什么吗?如何修复它?

您的代码中有两个问题:

  • 您试图强制展开一个可以为零的可选项。如果不确定数据是否可用,请不要使用强制展开
  • 您正在使用
    valueForKey:
    而不是
    objectForKey:
    从字典中检索数据。用于从字典中获取数据
  • 您可以通过以下方式修复崩溃:

    let itemsArray: NSArray?   = response.objectForKey("items") as? NSArray;
    let nextPageToken: String? = response.objectForKey("nextPageToken") as? String
    
    var videoIdArray: [String] = []
    if let itemsArray = itemsArray
    {
        for (item) in itemsArray
        {
           let videoId: String? = item.objectForKey("id")?.objectForKey("videoId") as? String
           if (videoId != nil)
           {
              videoIdArray.append(videoId!)
           }
         }
    }
    

    去除(分号)在第一行@MTA
    NSDictionary objectForKey:
    如果密钥不存在,则返回
    nil
    。我很确定键是区分大小写的。可能是Hi的重复,我使用相同的代码从NSDictionary检索对象值,但它显示了一个错误。swift 3中是否有任何新的更新?