ios - 参数类型“字符串?” 不符合预期的类型“StringProtocol”
问题描述
使用compare
on a String
in时会发生此错误Swift 5
,它只接受StringProtocol
,但我想使用它String
并且无处可做。
我已经搜遍了,无法理解似乎是什么问题。
解决方案
Optional<String>
(又名String?
)不符合StringProtocol
(这是有道理的)的问题。你应该打开可选的,有几种方法:
- 由
if let
/guard
(if let version = dbData?.version { //compare }
)展开 - 不推荐提供默认值(`(dbData?.version ?? "")),因为它会提供不必要的冲突
- Force unwrap
dbData!.version
,强烈不推荐,因为它可能会导致应用程序崩溃,如果 Optional 是nil
推荐阅读
- python - 使用 Pandas 更改标签行
- eclipse - Eclipse dark theme bug after uninstalling
- javascript - 防止mouseleave函数中断mouseenter
- python - Rentry to numpy 函数返回错误:float object has no attribute exp
- css - 如何在没有绝对定位的情况下将文本放在图像上
- android - 使用 Kotlin 将特征写入 BLE 设备
- python - 连接两个池化层的特征
- kubernetes - Kafka 在 Kubernetes 上的 Traefik 背后
- objectify - 在 Objectify 中异步保存/删除实体是否更快?
- regex - How can I make first column upper case?