swift - 如何修复 '? :' 表达式中的结果值具有不匹配的类型 'String' 和 '[Any]?'

标签 swift ternary-operator

我有以下几行代码:

let string:String = ""
let extracted_data:String! = (response?.extracted_data == nil) ? "" : response?.extracted_data
string.append("\(extracted_data)")

extracted_data 是一个[Any]。我不明白为什么会出现此错误:

Result values in '? :' expression have mismatching types 'String' and '[Any]?'

最佳答案

你应该将你的变量解析为 [Any] 类型的数组,如果你知道你的数组包含字符串类型,你应该这样做。从数组中取出第一个元素并设置你的值

response?.extracted_data?.first as? String ?? "Default Value if string is not present"

关于swift - 如何修复 '? :' 表达式中的结果值具有不匹配的类型 'String' 和 '[Any]?',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43251524/

相关文章:

ios - 尝试通过快速桥接头调用扩展方法时发送到实例的无法识别的选择器

ruby - 是三元运算符? : defined as a method in Ruby?

PHP 三元运算符与空合并运算符

ios - 联盟控制州

ios - 设置按钮类型

swift - 显示在 containerView 中的 NSViewController 不与 Cocoa App Swift [Mac OS] 中容器的边界对齐

python - 在 python 中使用三元运算符?

c#-4.0 - 以接口(interface)为基类的三元表达式

我可以在 C 中将 GCC 的 __builtin_expect() 与三元运算符一起使用吗

ios - 是否有任何原因导致我的 UITableViewCell 重写 setHighlighted 不会被调用但 UITableViewDelegate 方法会被调用?