【问题标题】:'MyEnum' is inaccessible due to 'internal' protection level由于“内部”保护级别,“MyEnum”无法访问
【发布时间】:2019-01-23 22:28:56
【问题描述】:

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

'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


    【解决方案1】:

    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。

    【讨论】:

      猜你喜欢
      • 2019-11-26
      • 1970-01-01
      • 1970-01-01
      • 2019-09-15
      • 2017-12-23
      • 1970-01-01
      • 2021-08-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多