将字符串类型转换为错误是不可预测的

时间:2019-05-10 09:29:22

标签: swift compiler-errors

这是一个奇怪的。在一个我正在研究的项目中,我有以下代码

let stuff = "stuff" as Error

这似乎没有任何问题,但对我来说似乎有些僵硬。

我创建了一个具有相同快速版本(4.2)的空项目。在这个测试项目中,同一行给了我

  

“字符串”不能转换为“错误”;您是要使用“ as!”吗?至   强制向下转换?

这是我最初期望的那种。这使我相信代码是在原始项目中编译的,因为某些依赖关系确实起到了某种神奇的作用,因此将所有依赖关系添加到了我的测试项目中,但这并没有改变-它仍然无法编译。

我正在努力将头绪围绕在这里发生的事情,但是我被困住了,需要您的帮助来解决。可能是某种编译器标志吗?还是有一个依赖项可以使用as关键字进行魔术?我怎么知道这里发生了什么?

1 个答案:

答案 0 :(得分:1)

您应该在新项目中添加以下代码。

extension String: Error {}

它允许将字符串作为错误抛出

func someFunction() throws {
    throw "some message" 
}    
do {
    try someFunction() 
} catch let errorMessage {
    print(errorMessage) 
}