2017-02-17 2 views
-1

Я слежу за учебником, который играл с API, в частности, с openweathermap api, и я столкнулся с проблемой, и xCode дает мне варианты «Исправить это с помощью!» и «), что, к сожалению, не исправляет проблема тоже.Значение дополнительного типа «NSDictionary» не разворачивается

if let urlContent = data { 
       do { 
       let jsonResult = try JSONSerialization.jsonObject(with: urlContent, options: JSONSerialization.ReadingOptions.mutableContainers) as? [String: Any] 
       print(jsonResult) 
       print(jsonResult?["name"]) 
        if let description = ((jsonResult?["weather"] as? NSArray)?[0] as? NSDictionary)?["description"] as? String { 
         print(description) 
        } 
       } catch {  
        print("JSON Processing Fail")       
       } 

Im получаю сообщение об ошибке на if let description = ((jsonResult?["weather"] as? NSArray)?[0] as? NSDictionary)?["description"] as? String в качестве значения дополнительного типа 'NSDictionary ??' не развернутая ошибка.

ответ

1

Просто используйте Массив типа Swift вместо NSArray.

do { 
    if let jsonResult = try JSONSerialization.jsonObject(with: urlContent, options: []) as? [String: Any] { 
     if let weatherArray = jsonResult["weather"] as? [[String:Any]], 
      let dic = weatherArray.first, let description = dic["description"] as? String { 
      print(description) 
     } 
    } 

} catch {  
    print("JSON Processing Fail")       
} 
Смежные вопросы