这是一个奇怪的。在一个我正在研究的项目中,我有以下代码
let stuff = "stuff" as Error
这似乎没有任何问题,但对我来说似乎有些僵硬。
我创建了一个具有相同快速版本(4.2)的空项目。在这个测试项目中,同一行给了我
“字符串”不能转换为“错误”;您是要使用“ as!”吗?至 强制向下转换?
这是我最初期望的那种。这使我相信代码是在原始项目中编译的,因为某些依赖关系确实起到了某种神奇的作用,因此将所有依赖关系添加到了我的测试项目中,但这并没有改变-它仍然无法编译。
我正在努力将头绪围绕在这里发生的事情,但是我被困住了,需要您的帮助来解决。可能是某种编译器标志吗?还是有一个依赖项可以使用as
关键字进行魔术?我怎么知道这里发生了什么?
答案 0 :(得分:1)
您应该在新项目中添加以下代码。
extension String: Error {}
它允许将字符串作为错误抛出
func someFunction() throws {
throw "some message"
}
do {
try someFunction()
} catch let errorMessage {
print(errorMessage)
}