基于swift 2中的另一个枚举创建一个枚举

时间:2015-12-23 05:14:14

标签: swift enums

考虑一种情况,您希望创建一个包含泛型操作的所有可能结果的主枚举(例如服务器对具有通用和专用结果的不同请求的响应)。然后,您希望对不同操作的可能结果进行分类,但是您希望使用主枚举来避免一遍又一遍地重新定义案例。怎么可能呢?你不能在swift中继承枚举,所以继承你的继承,你不能将其他枚举的值作为你的枚举案例的值。

用例的一个例子:

 // Here is the master enum which contains all possible conditions

 enum ServerError: ErrorType{

    case Forbidden(String?)
    case Malformed(String?)
    case NotFound(String?)
    case InternalError(String?)
    case Unauthorized(String?)
    ...
}

以下不起作用,因为swift抱怨

  

原始类型" ServerError.ServerError"不能转换为任何文字

   enum LoginError : ServerError {

    case ServerError.NotFound(String?)
    case ServerError.InternalError(String)

}

我没有尝试做到这一点,我只想找到一种方法来实现这个想法:在不同的枚举中设置一个主枚举,以便它们可以重复使用并且只能安全地切换到情况的可能情况。

如果我的问题需要进一步澄清,请告诉我。

由于

1 个答案:

答案 0 :(得分:0)

您尝试执行的操作称为继承,并且您无法在枚举或结构之间继承。

因此,您最好选择使用,其中您将有一个名为ServerError的课程和一个名为LoginError的课程