проверьте, является ли возвращаемое значение целым числом, если это так, верните строку swift - PullRequest
0 голосов
/ 23 сентября 2019

Я использую Algolia Search для получения списка данных.(Хиты)

Я получаю параметр ячейки, как показано ниже;

cell.textLabel?.text = [String: Any](hit)?["im_code"] as? String

Однако, это может вернуть строку или int.Я хотел бы заставить это в строку.Я пытался обернуть его в строку, но он не работал.

любая помощь очень ценится.

Дополнительные примечания

К сожалению, внутренняя часть Algolias не позволяет вамTypecast значения, так что это не вариант на бэкэнде.

Модель Объяснение

[String: Any](hit)?["im_code"] может вернуть Int или String.Мне нужно, чтобы это всегда заставляло струну.

Ответы [ 2 ]

1 голос
/ 23 сентября 2019

Вы можете привести тип к общему протоколу CustomStringConvertible, свойство description возвращает строковое представление:

let value = hit?["im_code"] as? CustomStringConvertible ?? ""
cell.textLabel?.text = value.description
0 голосов
/ 23 сентября 2019

У вас есть несколько вариантов здесь:

let value = yourDict?["im_code"] // Assuming Any? as the type

Добро

if let value = value as? String {
    cell.textLabel?.text = value
} else if let value = value as? Int {
    cell.textLabel?.text = String(value)
}

Плохо

if let value = value {
    cell.textLabel?.text = "\(value)"
}

Гадкий

let text: Any = (value as? String) ?? (value as? Int) ?? ""
cell.textLabel?.text = "\(text)"
...