将枚举从一个模块转换为另一个具有相同枚举名称的模块

时间:2017-11-01 17:10:36

标签: swift

我的项目正在使用框架,框架和项目都使用相同的枚举值。但是当我将param从主应用程序传递给模块控制器时,我得到它们并不相同,所以这样做就是转换它。我创建扩展名:

extension Result {
    init(_ data: Messaging.MessagingResult) {
        switch data {
            case .authenticationFailed:     self = .authenticationFailed
            case .connectionError:          self = .connectionError
        }
    }
}

现在我必须创建将项目枚举带回模块枚举的函数

 let adaptedConsume = transform(from: self.consume)

这是正确的方法以及转换功能应该如何

1 个答案:

答案 0 :(得分:2)

我不知道我是否理解了你的问题,但假设你想要做的是将一个枚举的值映射到另一个,你可以使用typealias来做到这一点。

Swift使得从Objective C到Swift的类型映射很多。

typealias Result = Messaging.MessagingResult之类的东西应该有用。

您可以从Swift Documentation了解有关typealis的更多信息。