Я относительно новичок в Swift и программировании. Я разрабатываю приложение, которое в значительной степени зависит от информации, загруженной с сервера. Поэтому во многих ViewControllers я использую NSURLSession и NSJSONSerialization для загрузки JSON в мое приложение.Swift 2 - Типовое литье и дополнительная цепочка
Каждый раз, когда я хотел подстроить словарь, например timetableDict?["timetable"]["class"]["day"]["lesson"][0]["name"]
, что-то вроде Cannot subscript a value of type [String : AnyObject] with an index type of String
появляется как ошибка.
Я понимаю, что следует избегать использования AnyObject в моем коде, но словарь с сервера сильно вложен структур, как это одна:
"timetable": ["class": ({
day = ({
lesson = ({
name = (MATHEMATICS, ENGLISH),
classOrder = 0,
teacher = (Someone)
}),
({
name = FRENCH,
classOrder = 1,
teacher = (Someone)
)}
)}
)}]
Проблема с этой структурой является то, что она сильно вложенной и имеет разные типы, когда он добирается до «name», «classOrder» и «teacher». Мне очень сложно не использовать AnyObject. Однако эта ошибка очень раздражает меня в течение очень долгого времени. Я был бы очень признателен, если бы кто-то мог помочь мне в этом. Заранее спасибо!
Существует сильное несоответствие импеданса между почти безразличием JSON и Swift от «OMG», я должен знать тип точного * всего ». Это делает синтаксический анализ JSON PITA в Swift (мы все были там!). Есть несколько библиотек, чтобы смазать это несоответствие и облегчить вашу боль. –