首页 > 解决方案 > 由于“内部”保护级别,“MyEnum”无法访问

问题描述

我的框架中的一个类中有一个带有原始值的枚举,我想与另一个类一起使用。我收到以下错误。

'types' is inaccessible due to 'internal' protection level

从这条线...

var table = sdb?.getTable(LoggerStartup.eTables.types)

这是我框架中的枚举

public class LoggerStartup : NSObject
{
    public enum eTables
    {
        static let users    = 100
        static let types    = 200
        static let items    = 300
        static let measures = 400
    }
}

从我所见,我不确定我是否可以拥有原始值?

标签: swift

解决方案


这些static属性仍然internal是默认的,你也必须声明它们public

public class LoggerStartup : NSObject
{
    public enum eTables
    {
        public static let users    = 100
        public static let types    = 200
        public static let items    = 300
        public static let measures = 400
    }
}

当然,如果您使用实际的枚举,这会有所不同:

public enum eTables: Int {
    case users = 100
    case types = 200
    case items = 300
    case measures = 400
}

在这种情况下,您将能够eTables.types直接使用。


推荐阅读