考虑一种情况,您希望创建一个包含泛型操作的所有可能结果的主枚举(例如服务器对具有通用和专用结果的不同请求的响应)。然后,您希望对不同操作的可能结果进行分类,但是您希望使用主枚举来避免一遍又一遍地重新定义案例。怎么可能呢?你不能在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)
}
我没有尝试做到这一点,我只想找到一种方法来实现这个想法:在不同的枚举中设置一个主枚举,以便它们可以重复使用并且只能安全地切换到情况的可能情况。
如果我的问题需要进一步澄清,请告诉我。
由于
答案 0 :(得分:0)
您尝试执行的操作称为继承,并且您无法在枚举或结构之间继承。
因此,您最好选择使用类,其中您将有一个名为ServerError
的课程和一个名为LoginError
的课程