从 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
]
}
我在访问 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
]
}