Я рекомендую вам использовать Codable
протокол. Вместо использования словарей используйте какой-то определенный класс / структуру для анализа данных. Вы можете использовать код, подобный следующему:
struct Status: Codable {
let status: Int
}
let body = "{\"status\":0}".data(using: .utf8)!
do {
let decoder = JSONDecoder()
let status = try decoder.decode(Status.self, from: body)
print(status) //Status(status: 0)
} catch {
print("\(error)")
}
Это более безопасный способ обработки ответа JSON. Кроме того, он дал вам информацию о том, что идет не так, чтобы вы могли легко это исправить. Например, если вы используете let status: String
, вы получите эту ошибку:
typeMismatch(Swift.String,
Swift.DecodingError.Context(codingPath: [CodingKeys(stringValue: "status", intValue: nil)],
debugDescription: "Expected to decode String but found a number instead.",
underlyingError: nil))
Подробнее о Codable
вы можете прочитать в Кодировка и декодирование пользовательских типов статья написанаApple, или поищите Codable
учебник онлайн - там много хороших статей.