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のブリッジが原因のようですが、問題を修正できません。私のコードはObjective Cプロジェクトでも使用されているため、 @Objcを削除できません。

誰でもこの問題を解決するのを手伝ってくれませんか。

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 に答える