检查返回的值是否是一个整数,如果是,则用Swift语言返回字符串。

问题描述 投票:-2回答:2

我正在使用Algolia搜索来接收一个数据列表(点击)。

我得到的单元格参数如下。

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

然而,它可以返回一个字符串或一个int。 我想把它强制变成一个字符串。 我曾试过用字符串包裹它,但没有成功。

附加说明

不幸的是,Algolia的后端不允许你键入值,所以它不是后端的一个选项。

模型说明

[String: Any](hit)?["im_code"] 可以返回 IntString. 我需要这个总是强制为字符串。

swift string int algolia
2个回答
1
投票

你可以将类型转换为普通协议 CustomStringConvertibleజజజజజజజజజజజజజజజజజజజజజజజజజజజజజజజజజజజజజజజ description 属性返回字符串表示。

let value = hit?["im_code"] as? CustomStringConvertible ?? ""
cell.textLabel?.text = value.description

0
投票

你有几个选择

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)"
© www.soinside.com 2019 - 2024. All rights reserved.