这个我很奇怪。在我正在处理的项目中,我有以下代码
让 stuff = "stuff"为 Error
这似乎编译没有任何问题,但对我来说看起来有点奇怪。
我创建了一个具有相同 swift 版本 (4.2) 的空项目。在这个测试项目中,同一行给了我
'String' is not convertible to 'Error'; did you mean to use 'as!' to force downcast?
这正是我一开始所期望的。这让我相信代码可以在原始项目中编译,因为某些依赖项正在发挥某种魔力,所以将所有依赖项添加到我的测试项目中,但这没有任何改变 - 它仍然无法编译。
我正在努力思考这里发生的事情,但我被困住了,需要你的帮助来弄清楚。它可能是某种编译器标志吗?或者是否有依赖项对 as
关键字产生某种魔力?我怎样才能弄清楚这里发生了什么?
最佳答案
您应该在新项目中添加以下代码。
extension String: Error {}
它允许将字符串作为错误抛出
func someFunction() throws {
throw "some message"
}
do {
try someFunction()
} catch let errorMessage {
print(errorMessage)
}
关于swift - 将 String 类型转换为 Error 是不可预测的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56074655/