所以我正在尝试使用这样的功能构建框架
public func logScreen(screen: SomeEnum){
print(screen.rawValue)
}
并且我想将使用该框架的项目中定义的字符串枚举的情况作为参数传递
答案 0 :(得分:0)
我认为您不能直接这样做。但是,我相信使用快速协议可以实现您的目标。您可以查看我的想法。
首先,您需要在框架中定义一个协议。在您的Framework类中说。
public protocol SomeEnum {
var rawValue: String { get }
}
在框架类中,您定义代码:
public func logScreen(screen: SomeEnum){
print(screen.rawValue)
}
现在在您的项目中,您可以声明枚举并继承框架 协议。例如在您的项目中:
public enum MyEnum: SomeEnum {
case test
case debug
public var rawValue: String {
switch self {
case .test:
return "test"
case .debug:
return "Debug"
}
}
}
现在使用您项目中的方法,如下所示:
yourframeworkclass.logScreen(screen: MyEnum.test)