Получение ошибки при разборе json в сериализации NSJSON в swift ios

 func connectionDidFinishLoading(_ connection: NSURLConnection)
    {

    NSLog("(statusResponseData)")

    let strData:NSDictionary! = (try! JSONSerialization.jsonObject(with: statusResponseData, options: JSONSerialization.ReadingOptions.mutableContainers)) as! NSDictionary

При преобразовании кода из swift 2.2 в swift 3.0 возникает следующая ошибка.

Не удается вызвать объект json с аргументом типа list (с nsmutable data! параметры: JSONSerialization.ReadingOptions).

Пожалуйста, помогите мне решить эту проблему.

1 ответ

  1. заменять :

     let strData:NSDictionary! = (try! JSONSerialization.jsonObject(with: statusResponseData, options: JSONSerialization.ReadingOptions.mutableContainers)) as! NSDictionary
    

    с:

     if let strData = try JSONSerialization.jsonObject(with: statusResponseData, options: []) as! JSONObject {
            //Do what you need to!
          }
    

    Я понятия не имею, почему все учебники предлагают этот mutableContainersвариант. В Swift он вообще не нужен при использовании собственных типов коллекций.