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

标签 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 提示

Raw type "ServerError.ServerError" is not convertible to any literal

   enum LoginError : ServerError {

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

}

我并不想完全这样做,我只是在寻找一种方法来实现这个想法:在不同的枚举中对一个主枚举进行子集化,这样它们就可以被重用,并且只在可能的情况下安全地切换大小写情况。

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

谢谢

最佳答案

您尝试做的是继承,您不能在枚举或结构之间继承。

所以你最好的选择是使用 class ,其中你将有一个名为 ServerError 的类和一个名为 LoginError

关于swift - 基于 swift 2 中的另一个枚举创建一个枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34429046/

相关文章:

java - 为什么 Jackson 在我自动生成的 POJO 枚举中忽略 @JsonCreator 注释?

java - 创建控制台命令列表——如何正确使用 Java

ios - 请求有关用户 iOS 的数据

ios - 如何在 UITableView 中实现 rowspan

Java 枚举关联

c# - 如何在 C# 中比较标志?

ios - uisearchcontroller中三个字母后开始搜索

ios - 保持 TableView 之间的数组顺序?

ios - 自从 Lottie 3.0 更新以来,setAnimation 发生了变化吗?

c# - 枚举可以返回字符串而不是整数吗?