0

访问公共枚举中的内部枚举值时出现错误

代码片段

@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 项目。

谁能帮我解决这个问题。

PS :更新到Xcode 10后开始观察此错误

4

1 回答 1

1

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

fileprivate static func upgradeStatus() -> [String: Sample1] {
    return [
        RawString.validValue.rawValue : .valid
    ]
}
于 2018-10-10T05:21:23.843 回答