不能使用面向协议的编程方法声明我的属性是私有的

时间:2017-05-24 07:01:04

标签: swift

我正在学习面向协议的方法,在添加访问修饰符时我遇到了以下问题。

我有一个模式类型的枚举。它可以改变。

public enum ModeType: String {

    case Smart = "Smart"
    case Easy = "Easy"
}

我已经创建了如下协议。

protocol Device {

    var deviceID: String { get }
    var title: String { get }
    var currentMode: ModeType { get set }
}

以下类符合Device协议。

class DeviceList: Device {

    public private(set) var currentMode: ModeType

    public private(set) var deviceID: String
    public private(set) var title: String

    init(deviceID: String, title: String, currentMode: ModeType, waterLevel: String, humidityLevel: String) {
        self.deviceID = deviceID
        self.title = title
        self.currentMode = currentMode
    }
}

问题是public private(set) var currentMode: ModeType

但在工作之下

public internal(set) var currentMode: ModeType

我在这里有什么误解可以解释一下吗?

0 个答案:

没有答案