2017-01-16 4 views
0
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 в сериализации NSJSON в swift ios

не может ссылаться на объект JSON с аргументом типа списка (с NSMutable данных опций:! JSONSerialization.ReadingOptions).

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

+1

Прочитайте заметки о выпуске Swift 3, которые вы не сделали, и прочитайте, какие изменения вам необходимо внести в код Swift 2. Не используйте mutableContainers, если вы не знаете, почему. И я надеюсь, вы знаете, что ваш код сработает, если возникнут какие-либо проблемы. – gnasher729

+0

@ gnasher729. Я новичок в swift. Можете ли вы помочь мне с моим кодом? – Rakesh

ответ

0

заменить:

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 при использовании собственных типов коллекций.

+1

Почему? Это называется «культовое программирование груза». – gnasher729

Смежные вопросы