从 swift 4.2 中的 public 枚举访问内部枚举时出错

Getting error while accessing internal enum from public enum in swift 4.2

我在访问 public 枚举

中的 internal 枚举值时出错

代码片段

@objc public enum Sample1 : Int {
      case valid
      fileprivate static var upgradeStatus:[String: Sample1] = [
          RawString.validValue.rawValue : .valid
      ]
}

internal enum RawString: String {
    case validValue = "Invalid"
}

错误说

Enum 'RawString' is internal and cannot be referenced from a property initializer in a '@_fixed_layout' type

看起来是因为桥接 @Objc 但无法解决问题。我无法删除 @Objc,因为我的代码也在 Objective C 项目中使用。

谁能帮我解决这个问题。

P.S : 在我更新到 Xcode 10[=14= 后开始观察到这个错误一次]

您可以将 upgradeStatus 转换为静态方法,这将使您的代码编译:

fileprivate static func upgradeStatus() -> [String: Sample1] {
    return [
        RawString.validValue.rawValue : .valid
    ]
}