快速成功枚举

让我们谈谈Swift中的错误处理。 如果您已经使用Swift一段时间了,那么应该想到两件事。 可选try-catch块 。 他们为我们提供了很好的服务,并将继续这样做,但是让我们看看处理错误的另一种方法。

为什么?

Swift的可选类型很棒,但是有一个缺点。 出现问题时,我们不会收到错误消息。 这很糟糕,因为当涉及到我们要通过UI向用户报告操作失败的原因时,我们不得不说“由于n​​il而失败”

枚举怎么样?

因此,为了捕获可能的错误,我们希望我们的故障函数返回结果ErrorType 。 那么,为什么不返回枚举而不是返回“ Optional(Result)”呢?

借助Swift的枚举具有关联值的能力我们可以做这样的事情来保留有关出了什么问题的信息。

在这里,我们可以看到找不到Stevie的信息,并且已将其正确报告给我们的用户。 这比仅对可选选项执行if let / guard并在发生错误时返回null值要好得多。