В ролях от "String?" на несвязанный тип '[String: String]' всегда происходит сбой

Number.prototype.trim = function(decimals) {
    var s = this.toString();
    var d = s.split(".");
    d[1] = d[1].substring(0, decimals);
    return parseFloat(d.join("."));
}

console.log((5.676).trim(2)); //logs 5.67
0
задан Lukas Würzburger 7 March 2019 в 20:42
поделиться

2 ответа

Существует множество способов преобразования необязательной строки в словарь.

Вы можете использовать родной JSONSerialization

guard let text = response.result.value as? String else { return } 
    if let data = text.data(using: String.Encoding.utf8) {
        do {
            let json = try JSONSerialization.jsonObject(with: data, options: .mutableContainers) as? [String:String]
            print(json) // safely use json
        } catch {
            print("Error")
        }
    }
0
ответ дан excitedmicrobe 7 March 2019 в 20:42
поделиться

Проблема в том, что response.result.value имеет необязательный тип String. Но вы пытаетесь привести это как словарь [String: String] здесь

 if let result = response.result.value as? [String:String] {

Этот код проверяет его безопасно, но приведение явно не удается. Чтобы решить эту проблему, вам нужно проанализировать строку incode как объект json, чтобы получить данные.

Swift 4 использует Codable для этой работы. Документация или используйте API Alamofire, который выполняет ту же работу: этот метод responseJSON

0
ответ дан Vyacheslav 7 March 2019 в 20:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: