由于“内部”保护级别,无法访问“ MyEnum”

时间:2019-01-23 22:28:57

标签: swift

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

'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
    }
}

根据我所看到的,我不确定是否可以使用原始值?

1 个答案:

答案 0 :(得分:3)

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