【发布时间】:2021-10-22 06:08:15
【问题描述】:
我有一个函数
func login<Bool> (parameters: [(String, Any)],
completion: @escaping (Bool) -> Void) {
//Do something
}
每当我像这样调用完成处理程序时
completion(false)
或
completion(true)
XCode 一直告诉我:“无法将 'Swift.Bool' 类型的值转换为预期的参数类型 'Bool'”
最终,我删除了函数开头的 ,错误消失了。我以为那是在声明函数的类型,但坦率地说,我不确定这意味着什么,或者尽管谷歌搜索,但 做了什么。我确信它解释得很好,但我并没有仅仅通过谷歌搜索来掌握这个概念。以及为什么 Swift.Bool 无法转换为 Bool。我能够发现 bool 有一个客观的 C 版本,我想它可能是在要求它,但这也不起作用。 Bool 是什么意思?
【问题讨论】:
-
通过输入
你声明了一个覆盖 Swift.Bool 的通用约束。如果您想了解 的作用,请查找泛型。 -
我怀疑您有自己的自定义类型,也称为
Bool。如果您命令+单击completion输入的Bool,可能会看到您自定义Bool类型的定义。编辑:似乎你已经编辑了你的问题,但没关系它已经回答了;)