我正在学习面向协议的方法,在添加访问修饰符时我遇到了以下问题。
我有一个模式类型的枚举。它可以改变。
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
我在这里有什么误解可以解释一下吗?