考虑这样一种情况,您想要创建一个主枚举,其中包含通用操作的所有可能结果(例如服务器对具有通用和专用结果的不同请求的响应)。然后你想对不同操作的可能结果进行分类,但你想使用主枚举来避免一遍又一遍地重新定义案例。怎么可能?你不可能在 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/