我正在使用Algolia搜索来接收一个数据列表(点击)。
我得到的单元格参数如下。
cell.textLabel?.text = [String: Any](hit)?["im_code"] as? String
然而,它可以返回一个字符串或一个int。 我想把它强制变成一个字符串。 我曾试过用字符串包裹它,但没有成功。
不幸的是,Algolia的后端不允许你键入值,所以它不是后端的一个选项。
[String: Any](hit)?["im_code"]
可以返回 Int
或 String
. 我需要这个总是强制为字符串。
你可以将类型转换为普通协议 CustomStringConvertible
జజజజజజజజజజజజజజజజజజజజజజజజజజజజజజజజజజజజజజజ description
属性返回字符串表示。
let value = hit?["im_code"] as? CustomStringConvertible ?? ""
cell.textLabel?.text = value.description
你有几个选择
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)"