2016-11-07 3 views
7

я получил эту проблему, пытаясь разобрать JSON на мое приложение IOS:Ошибки брошенные здесь не обрабатываются

JSON Problem

Соответствующий код:

let jsonData:NSDictionary = try JSONSerialization.jsonObject(with: urlData! as Data, options: JSONSerialization.ReadingOptions.mutableContainers) as! NSDictionary 

/* XCode error ^^^ Errors thrown from here are not handled */ 

Может кто-нибудь мне помочь?

+3

Пожалуйста, не публикуйте свой код как изображение. Скопируйте и вставьте соответствующий код в свой вопрос. Также укажите полное сообщение об ошибке как текст в своем вопросе и укажите, какая строка вызывает ошибку. – rmaddy

+0

И если вы используете Swift 3, используйте типы Swift 3. Используйте 'Data', а не' NSData'. Используйте 'Error', а не' NSError'. Используйте Swift массивы и словари, а не 'NSArray' и' NSDictionary'. – rmaddy

+0

И сделайте то, что сообщают вам сообщения об ошибках. Вы используете 'try', но не в правильной области Do-Catch ... – Moritz

ответ

27

Возможная ошибка в let jsonData = try JSONSerialization ... не обрабатывается.

Вы можете игнорировать возможную ошибку, и зависания в качестве штрафа, если произошла ошибка:

let jsonData = try! JSONSerialization ... 

или вернуть Optional, так jsonData является nil в случае ошибки:

let jsonData = try? JSONSerialization ... 

или вы можете уловить и обработать возникшую ошибку:

do { 
    let jsonData = try JSONSerialization ... 
    //all fine with jsonData here 
} catch { 
    //handle error 
    print(error) 
} 

Возможно, вы захотите изучить The Swift (3) Language

+0

Вы заслужили голосование! Я новичок в Swift! О, человек, Свифт - это боль в заднице! <3 –